Al igual que Java Language, JavaScript puede lanzar excepciones a través de declaraciones de lanzamiento. A diferencia del lenguaje Java, JavaScript puede lanzar todos los tipos de valores a través de declaraciones de lanzamiento, no solo para lanzar objetos de error.
La copia del código es la siguiente:
// tirar un objeto de error.
intentar{
tirar un nuevo error ("Mensaje en objeto de error");
} catch (e) {
console.log (e); // error: mensaje en objeto de error
}
intentar{
arrojar "mensaje en bruto";
} catch (mensaje) {
console.log (mensaje); // Mensaje bruto
console.log (mensaje typeof); // string
}
intentar{
tirar 42;
} catch (código) {
console.log (código); // 42
console.log (código de typeof); // número
}
Al igual que Java Language, si la excepción no es atrapada por ninguna declaración de captura, la excepción eventualmente se arrojará al usuario:
La copia del código es la siguiente:
intentar{
// tirar un nuevo error ("Error de prueba"); // se lanzará el error. Error: Error de prueba
} finalmente{
}
intentar{
tirar 42; // se lanzará el error. Error: 42
} finalmente{
}
Para las excepciones de lanzamiento de capturas, JavaScript también usa declaraciones Try/Catch/Finalmente. Las reglas de uso son: Se requiere prueba, captura y finalmente son declaraciones opcionales, pero al menos una de captura y finalmente debe aparecer.
En la declaración de captura, se puede definir un parámetro E (o cualquier otro nombre de variable legal) para almacenar los valores atípicos lanzados. Dentro de la declaración de captura, este parámetro se puede usar como una variable local. A diferencia de otro uso de variables en JavaScript, las variables de parámetros en las declaraciones de captura solo son válidas dentro de la declaración de captura (el alcance de esta variable se limita a la instrucción Catch).
Para las declaraciones finalmente, el código en finalmente se ejecutará independientemente de si hay una excepción lanzada en el intento. Los detalles incluyen:
1. No se produce excepción en el tre. Cuando se ejecute la declaración de prueba, el código en finalmente se ejecutará.
2. No se produce una excepción en la prueba, pero cuando el código de prueba sale debido a la ejecución de las declaraciones de descanso, continuar o devolver, el código en finalmente se ejecutará.
3. Una excepción ocurre en el try. Después de procesar la excepción por la declaración de captura, el código en finalmente se ejecuta.
4. Una excepción ocurre en el intento, pero cuando se debe continuar la excepción debido a la ausencia de una declaración de captura, el código en finalmente se ejecutará. Vale la pena señalar que en el caso de que falta la declaración de captura, JavaScript ejecutará el código finalmente y luego continuará lanzando una excepción hacia arriba.
En código finalmente, si aparecen las declaraciones de interrupción, continuar o retorno, JavaScript ejecutará directamente estas declaraciones e ignorará las declaraciones de descanso, continúa o retorno que pueden existir en el código de prueba; Incluso si falta la declaración de captura, lo que resulta en una excepción que debe informarse, JS descartará la información de informes de excepción y continuará ejecutando las declaraciones de ruptura, continuar o devolver en código finalmente. Del mismo modo, si se lanza una excepción en el código finalmente, JavaScript descartará todas las declaraciones de descanso, continuar o devolverá en el código de prueba, y también descartará posible comportamiento de informes de excepción, y solo lanzará excepciones en el código finalmente.