Declaración try/catch/finally en JavaScript

Definición y uso

La declaración try/catch/finally maneja errores que pueden ocurrir en parte o en su totalidad en un bloque de código, mientras que el código sigue ejecutándose.

Los errores pueden ser causados por errores de codificación del programador, errores de entrada incorrectos y otras situaciones imprevistas.

La declaración try permite definir un bloque de código que se debe probar en tiempo de ejecución para detectar errores.

Si ocurre un error en el bloque try, la declaración catch permite definir el bloque de código a ejecutar.

La declaración finally permite ejecutar código después de try y catch, sin importar el resultado.

Nota:Las declaraciones catch y finally son opcionales, pero se debe usar una de ellas (o ambas) cuando se utiliza la declaración try.

Consejo:Cuando ocurre un error, JavaScript generalmente se detiene y genera un mensaje de error. Usa la declaración throw para crear errores personalizados (lanzar excepciones). Si se utilizan try y catch junto con throw, puedes controlar el flujo del programa y generar mensajes de error personalizados.

Para obtener más información sobre errores de JavaScript, aprende el tutorial de errores de JavaScript.

Ejemplo

En este ejemplo, cometimos un error en la escritura del código.

Este ejemplo debería mostrar "¡Bienvenido invitado!", pero hay un error en la ortografía de alert.

El bloque catch capturará el error y ejecutará el código para manejarlo:

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
  adddlert("¡Bienvenido invitado!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>

prueba por ti mismo

En la parte inferior de la página hay más ejemplos de TIY.

Sintaxis

try {
  tryCode - Bloque de código a intentar
}
catch(err) {
  catchCode - Bloque de código para manejar errores
} 
finally {
  finallyCode - Bloque de código que se ejecutará independientemente del resultado de try / catch
}

Valores de parámetros

Parámetros Descripción
tryCode Obligatorio. Un bloque de código que debe probar el error durante su ejecución.
err Obligatorio, si se utiliza junto con catch. Especifica la variable local de referencia del error. Esta variable puede referirse al objeto Error (que contiene información sobre el error que ocurrió, por ejemplo, el mensaje "'addlert' no está definido"). Si la excepción se creó con una declaración throw, esta variable se refiere al objeto especificado en la declaración throw (véase "Más ejemplos").
catchCode Opcional. Un bloque de código que se debe ejecutar si ocurre un error en el bloque try. Si no ocurre un error, este código de bloque nunca se ejecutará.
finallyCode Opcional. Un bloque de código que se debe ejecutar independientemente del resultado de try / catch.

Detalles técnicos

Versión de JavaScript: ECMAScript 3

Más ejemplos

Ejemplo

Este ejemplo verifica la entrada. Si el valor es incorrecto, lanza una excepción (err).

la declaración catch captura excepciones (err) y muestra un mensaje de error personalizado:

<!DOCTYPE html>
<html>
<body>
<p>Ingresa un número entre 5 y 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Probar Entrada</button>
<p id="message"></p>
<script>
function myFunction() {
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  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>
</body>
</html>

prueba por ti mismo

Ejemplo

la declaración finally te permite ejecutar código después de try y catch, sin importar el resultado:

function myFunction()
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  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 = "";
  }
}

prueba por ti mismo

navegador web admite

语句 Chrome IE Firefox Safari Opera
try/catch/finally Soporte Soporte Soporte Soporte Soporte

Páginas relacionadas

Tutoriales de JavaScript:Errores de JavaScript

Manual de referencia de JavaScript:Sentencia throw de JavaScript