JavaScript try/catch/finallySentencia

JavaScript 语句参考手册Manual de referencia de sentencias de JavaScript

Ejemplo

En el siguiente ejemplo, escribimos deliberadamente un error tipográfico en el código del bloque try.

Este ejemplo debería mostrar «¡Bienvenido!», pero se muestra un mensaje de error de ortografía.

El bloque catch captura el error del bloque try y ejecuta el código para manejarlo:

try { adddlert("¡Bienvenido!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; }

Pruébalo »

La parte inferior de este artículo contiene más ejemplos.


Definición y uso

La sentencia try/catch/finally se utiliza para manejar los mensajes de error que puedan aparecer en el código.

El error puede ser un error de sintaxis, normalmente un error de codificación o una errata causada por el programador. También puede ser un error ortográfico o una funcionalidad que falta en el lenguaje (posiblemente debido a diferencias entre navegadores).

tryLa sentencia nos permite definir un bloque de código que se prueba para detectar errores durante su ejecución.

catchLa sentencia nos permite definir cuándotryse produce un error en el bloque de código, el bloque de código que se ejecutará.

finallyLa sentencia se ejecuta después de try y catch, haya o no una excepción.

Nota:Las sentencias catch y finally son opcionales, pero al usar la sentencia try debes utilizar al menos una de ellas.

Sugerencia:Cuando ocurre un error, JavaScript detiene la ejecución y genera un mensaje de error. Usathrowla sentencia para crear un mensaje personalizado (lanzar una excepción). Si usasthrowytry 、 catchjuntas, puedes controlar el mensaje de error que genera el programa.

Para más información sobre errores de JavaScript, consulta nuestroErrores de JavaScripttutorial.


Soporte del navegador

Sentencia
try/catch/finally Yes Yes Yes Yes Yes


Sintaxis

try {
    tryCode - Intenta ejecutar el bloque de código
}
catch(err) {
    catchCode - El bloque de código que captura el error
}
finally {
    finallyCode - El bloque de código que se ejecuta independientemente del resultado de try/catch
}

Valores de parámetros

Parámetro Descripción
tryCode Obligatorio. El bloque de código que se comprueba en busca de errores.
err Obligatorio (si se usa catch). Especifica el error al que se aplica la variable local. Dicha variable puede hacer referencia al objeto Error (que contiene el mensaje de error ocurrido, como "'addlert' no está definido"). Si la excepción se crea mediante la sentencia throw, la variable hace referencia al objeto especificado en la sentencia throw (ver "Más ejemplos").
catchCode Opcional. El bloque de código que se ejecuta si ocurre un error en la sentencia try. Si no ocurre ningún error en la sentencia try, este código no se ejecutará.
finallyCode Opcional. Se ejecuta independientemente del resultado de try/catch.

Detalles técnicos

Versión de JavaScript: 1.4


实例

Más ejemplos

Ejemplo

Este ejemplo comprueba si el valor introducido es erróneo y, si lo es, lanza una excepción.

La excepción se captura mediante la sentencia catch y se muestra un mensaje personalizado:

<p>Introduce un número entre 5 y 10:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">Comprobar 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 "Está vacío"; if(isNaN(x)) throw "No es un número"; if(x > 10) throw "Demasiado grande"; if(x < 5) throw "Demasiado pequeño"; } catch(err) { message.innerHTML = "El valor introducido" + err; } }
</script>

Pruébalo »

Ejemplo

finallyLa sentencia se ejecuta independientemente del resultado de try y catch:

function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "Está vacío"; if(isNaN(x)) throw "No es un número"; if(x > 10) throw "Demasiado grande"; if(x < 5) throw "Demasiado pequeño"; } catch(err) { message.innerHTML = "El valor introducido" + err; } finally { document.getElementById("demo").value = ""; } }

Pruébalo »


Páginas relacionadas

Tutorial de JavaScript:Errores de JavaScript

Manual de referencia de JavaScript:Sentencia throw de JavaScript


JavaScript 语句参考手册Manual de referencia de sentencias de JavaScript Otras extensiones