Uso de sentencias javascript try/catch/finally [con ejemplos]

Este tutorial explica cómo usar las declaraciones try/catch/finally en Javascript para manejar errores, con algunos ejemplos útiles.

A veces se espera un error, y en lugar de querer que la aplicación detenga la ejecución del error; quieres hacer otra cosa.

Otras veces, un error es inesperado o perjudicial para el funcionamiento de una aplicación y desea asegurarse de informarlo.

intentar/atrapar declaraciones en JavaScript te permiten hacer esto.

intentar/atrapar intentará ejecutar un bloque de código y tomará una acción específica si se cumple un error, en lugar de la acción predeterminada (que generalmente detiene la ejecución del código).

Sintaxis de probar/atrapar/finalmente

try {
    // Code to be executed
}
catch [(exception_var)] {
    // Code to execute if an exception (error) is reached
}
finally {
    // Code to execute regardless of whether an exception was reached
}

Tenga en cuenta que:

  • atrapar, o finalmente bloques debe ser suministrado
  • excepción_var debe ser el nombre de la variable que desea usar para acceder a la excepción lanzada

Ejemplos

try {
    thisFunctionDoesNotExist();
} catch (err) {
    console.error(err); // Print the error to the console.  
    // An error of type ReferenceError:  will be sent to the console as the code above tried to execute a non-existent function
    // Code execution will resume after the try/catch block rather than halting
} finally {
    console.log('Finished!'); // 'Finished!' will be sent to the console regardless of whether there was an error or not
}

Capturar un tipo específico de excepción

Puede manejar diferentes tipos de error de manera diferente comprobando su tipo con instanceof :

try {
    thisFunctionDoesNotExist();
} catch (err) {

    if (err instanceof ReferenceError) {
        console.error(err); // Print the error to the console.  
    } else {
        console.log('An unexpected error occurred!');
        throw err;
    }
}

Tenga en cuenta que el error solo se enviará a la consola si se trata de un ReferenceError. De lo contrario, se vuelve a generar para que se trate con el comportamiento de excepción no controlado predeterminado:detener la ejecución

Recursos adicionales

Documentación técnica de Mozilla sobre try/catch

¿No usas JavaScript? Aquí se explica cómo usar try/catch en PHP!