En este tutorial, aprenderá acerca de las declaraciones throw de JavaScript con la ayuda de ejemplos.
En el tutorial anterior, aprendió a manejar excepciones usando JavaScript declaración try… catch. Las sentencias try y catch manejan las excepciones de una forma estándar proporcionada por JavaScript. Sin embargo, puede utilizar la throw
declaración para pasar excepciones definidas por el usuario.
En JavaScript, la throw
declaración maneja las excepciones definidas por el usuario. Por ejemplo, si un determinado número se divide por 0 , y si necesita considerarlo Infinity
como una excepción, puede usar la throw
instrucción para manejar esa excepción.
Declaración de lanzamiento de JavaScript
La sintaxis de la declaración throw es:
throw expression;
Aquí, expression
especifica el valor de la excepción.
Por ejemplo,
const number = 5; throw number/0; // generate an exception when divided by 0
Nota : La expresión puede ser una cadena, un valor booleano, un número o un valor de objeto.
Lanzamiento de JavaScript con try … catch
La sintaxis de try… catch… throw
es:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Nota : Cuando se ejecuta la instrucción throw, sale del bloque y se dirige al catch
bloque. Y el código debajo de la throw
declaración no se ejecuta.
Ejemplo 1: intentar … atrapar … lanzar Ejemplo
const number = 40; try ( if(number> 50) ( console.log('Success'); ) else ( // user-defined throw statement throw new Error('The number is low'); ) // if throw executes, the below code does not execute console.log('hello'); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Salida
Se ha detectado un error Mensaje de error: Error: el número es bajo
En el programa anterior, se comprueba una condición. Si el número es menor que 51 , se produce un error. Y ese error se arroja usando la throw
declaración.
La throw
declaración especifica la cadena The number is low
como una expresión.
Nota : También puede utilizar otros constructores incorporados por error para errores estándar: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, y RangeError
.
Por ejemplo,
throw new ReferenceError('this is reference error');
Relanzar una excepción
También puede usar una throw
declaración dentro del catch
bloque para volver a generar una excepción. Por ejemplo,
const number = 5; try ( // user-defined throw statement throw new Error('This is the throw'); ) catch(error) ( console.log('An error caught'); if( number + 8> 10) ( // statements to handle exceptions console.log('Error message: ' + error); console.log('Error resolved'); ) else ( // cannot handle the exception // rethrow the exception throw new Error('The value is low'); ) )
Salida
Un error capturado Mensaje de error: Error: Este es el error de lanzamiento resuelto
En el programa anterior, la throw
declaración se usa dentro del try
bloque para detectar una excepción. Y la throw
declaración se vuelve a lanzar en el catch
bloque que se ejecuta si el catch
bloque no puede manejar la excepción.
Aquí, el catch
bloque maneja la excepción y no ocurre ningún error. Por tanto, la throw
declaración no se repite.
Si el bloque de captura no manejó el error, la declaración de lanzamiento se volvería a generar con el mensaje de error Error no detectado: el valor es bajo