JavaScript Try Catch

Javascript Try Catch – Captura de errores y control de estos en JavaScript

¿Conoces el funcionamiento correcto de JavaScript Try Catch? Se trata del manejo de excepciones en JavaScript, una funcionalidad muy útil y que no muchos desarrolladores utilizan en sus código. Te explicamos cómo usarlo y la razón de hacerlo.

¿Para que podemos usarlo?

En JavaScript, como en el resto de lenguajes de programación, es posible que ocurran errores de datos. Si no se controlan mediante las funciones de Javascript Try Catch, el programa lanzará un error. Con estas sentencias, el error ocurrirá del mismo modo que si no lo tuviéramos, pero ahora tenemos la posibilidad de controlar dichas excepciones y que el usuario final (quien usa la aplicación) no se entere de dichos errores o al menos la experiencia de usuario que tenga con nuestra aplicación sea mucho mejor.

¿Cómo usar estas sentencias?

Como un ejemplo vale vale más que 1000 palabras, lo mejor es que lo veamos sobre un fragmento de código.

Dentro de una etiqueta <script> de type = javascript en una página .html, .cshtml, .php, etc o incluso en un fichero JavaScript con extensión .js podemos incluir cualquier código JavaScript que vaya a ejecutarse en una página web. Por lo tanto, sólo necesitamos de esto para poder hacer uso de estas sentencias.

Os muestro un pequeño ejemplo de uso de las sentencias javascript try catch:

<!DOCTYPE html>
<html>
   <body>
      <p id="demo"></p>
      <script>
         try {
            entrarEscribeCodigo();
         }
         catch(err) {
            document.getElementById("demo").innerHTML = err.message;
            // expected output: ReferenceError: entrarEscribeCodigo is not defined
            // Nota - El mensaje de error puede variar dependiendo del navegador que estemos usando y el idioma del mismo.
         }
      </script>
   </body>
</html>

En el Try se meterán las sentencias, es decir, toda la funcionalidad que añadiríamos al método sin las sentencias Try/Catch. Si se produce un error, iremos al Catch, donde podremos controlar la excepción.

Try….Catch….Finally

¿Finally? no habíamos hablamos de esta sentencia hasta ahora. Normalmente Try y catch van siempre acompañados de esta sentencia.

Las sentencias que se meten en el Finally se van a ejecutar siempre. Por tanto, primero se ejecutarán primero las sentencias del Try, si hay errores, las del Catch y después siempre las del Finally.

Algunos ejemplos de uso de Finally son para cerrar conexiones o escribir un log con la finalización de un proceso.

Captura de errores en el catch

En el Catch se capturan todos los errores, pero se puede hacer diferenciación de estos con cláusulas:

try {
    myroutine();  
} catch (e) {
    EvalError
    } else {
       // sentencias para manejar cualquier excepción no especificada
       logMyErrors(e); // pasa el objeto de la excepción al manejador de errores
}

El catch se puede controlar aún más por el tipo de error esperado. Está especificado en el convenio ECMAScript y permite manejar estos tres tipo de excepciones:

(e instanceof TypeError) --> Para manejar excepciones del tipo TypeError 
(e instanceof RangeError) --> Para manejar excepciones del tipo RangeError
(e instanceof EvalError) --> Para manejar excepciones del tipo EvalError

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *