Conceptos de control de excepciones

El concepto básico del control de excepciones es englobar en una sección de código aquello que es susceptible que falle en algún momento y si por cualquier circunstancia algo de ese código falla, no debemos continuar con la ejecución del mismo y deberíamos de saltar a otra parte del código informando del error al usuario (en producción mostraremos la mínima información posible para evitar alguien corrompa nuestra aplicación, sistema, etc). El típico ejemplo es cuando cae la base de datos de nuestra aplicación y al intentar conectar con la misma se produce un error de conexión. Lo ideal sería mostrar un error amigable al usuario y no continuar con la ejecución del script donde se van propagando todos los errores conforme avanza. Resumiendo, el objetivo es que nuestro código sea lo más tolerante a fallos y que sepa responder lo más elegante posible a los fallos de nuestra aplicación.

En las siguientes imágenes vemos dos errores no capturados y un error capturado con un mensaje elegante y amigable para el usuario.

Error no capturado

Primero ejemplo de error no capturado

Otro

Segundo ejemplo de error no capturado

En estas dos imágenes vemos errores de conexión con MySQL, incluso nos imprime el nombre del fichero junto con su ruta, número de la línea del fichero, etcétera. Si la conexión con la base de datos falla no debería seguir ejecutando más instrucciones, porque, como vemos en la imagen, los errores se van propagando hacia abajo.

En la siguiente imagen tenemos un error capturado de forma elegante:

Ejemplo de error capturado

Al igual que otros lenguajes de programación que disponen de captura de excepciones como C++, Java o C#, dispondremos de tres palabras reservadas para el manejo y captura de excepciones.

Esas palabras son:

  • try: nos permitirá definir un bloque de "intento" en cualquier parte del código, donde se incluirán un conjunto de sentencias a ejecutar.

  • catch: nos permitirá definir un bloque de captura de excepciones asociado siempre a un bloque try.

  • throw: no permitirá generar una excepción en el código que podrá ser capturado por el primer bloque catch que coincida con la excepción generada.

results matching ""

    No results matching ""