JavaScript prueba... captura... finalmente
Ejemplo
Este ejemplo tiene un error tipográfico en el bloque try . La alerta está mal escrita.
El bloque catch detecta el error y ejecuta el código para manejarlo:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
Más ejemplos a continuación.
Definición y uso
Cuando ocurre un error , JavaScript se detendrá y generará un mensaje de error.
Nota
El término técnico para esto es: JavaScript lanza una excepción .
JavaScript crea un objeto de error con dos propiedades: nombre y mensaje .
El try...catch...finally
combo de declaraciones maneja los errores sin detener JavaScript.
La try
declaración define el bloque de código para ejecutar (para probar).
La catch
declaración define un bloque de código para manejar cualquier error.
La finally
declaración define un bloque de código para ejecutar independientemente del resultado.
La throw
instrucción define un error personalizado.
Ambos catch
y finally
son opcionales, pero debe usar uno de ellos.
Nota
El uso de throw con try and catch le permite controlar el flujo del programa y generar mensajes de error personalizados.
Ver también:
Sintaxis
try {
tryCode - Code block to run
}
catch(err) {
catchCode -
Code block to handle errors
}
finally {
finallyCode - Code block to be executed regardless of the try result
}
Parámetros
Parameter | Description |
tryCode | Required. Code block to be tested while executing. |
err | A local reference to the error object. |
catchCode | Optional. Code block to execute if an error occurs. |
finallyCode | Optional. Code block to execute regardless of the try result |
Más ejemplos
Este ejemplo examina la entrada.
Si el valor es incorrecto, se lanza una excepción (err):
<p>Please input a number between
5 and 10:</p>
<input id="demo" type="text">
<button type="button"
onclick="myFunction()">Test Input</button>
<p id="message"></p>
<script>
function myFunction() {
const message =
document.getElementById("message");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "is Empty";
if(isNaN(x)) throw "not a number";
if(x > 10) throw "too high";
if(x < 5) throw "too low";
}
catch(err) {
message.innerHTML =
"Input " + err;
}
}
</script>
La declaración finalmente ejecuta el código, después de probar el resultado:
function myFunction()
const message =
document.getElementById("message");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "Empty";
if(isNaN(x))
throw "Not a number";
if(x >
10) throw "Too high";
if(x <
5) throw "Too low";
}
catch(err)
{
message.innerHTML = "Error: " +
err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}
Compatibilidad con navegador
try...catch
es una característica de ECMAScript3 (ES3).
ES3 (JavaScript 1999) es totalmente compatible con todos los navegadores:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |