Excepción
Una excepción (abreviatura de "evento excepcional") es un error o evento inesperado que ocurre mientras se ejecuta un programa. Cuando ocurre una excepción, interrumpe el flujo del programa. Si el programa puede manejar y procesar la excepción, es posible que continúe ejecutándose. Si una excepción no se maneja, es posible que el programa deba cerrarse.
Varios lenguajes de programación admiten excepciones, aunque se utilizan de distintas maneras. Por ejemplo, las excepciones son una parte integral del lenguaje Java y suelen utilizarse para controlar el flujo de un programa. Java incluye una Exception clase, que tiene docenas de subclases, como TimeoutException, UserException e IOException. Las subclases como IOException contienen excepciones más específicas, como FileNotFoundException y CharacterCodingException, que se pueden "lanzar" si no se encuentra un archivo o no se reconoce la codificación de caracteres de una cadena.
Otros lenguajes solo utilizan excepciones para detectar errores de ejecución fundamentales, como la imposibilidad de asignar memoria o los errores a nivel del sistema. Por ejemplo, un programa de C++ puede lanzar la excepción bad_alloc cuando no se puede asignar memoria y la excepción system_error cuando el sistema operativo produce un error.
Manejo de excepciones
Un programa informático bien escrito comprueba si se producen excepciones y las maneja adecuadamente. Esto significa que el desarrollador debe comprobar cuáles son las excepciones probables y escribir código para procesarlas. Si un programa maneja bien las excepciones, los errores inesperados se pueden detectar y gestionar sin que el programa se bloquee.
Las excepciones se "lanzan" cuando ocurren y otro código del programa las "captura". Se pueden lanzar explícitamente mediante la instrucción throw o implícitamente dentro de una cláusula try. A continuación se muestra un ejemplo de sintaxis "try / catch" en Java. El siguiente código intenta dividir entre cero, pero lanza una excepción ArithmeticException y devuelve 0 como resultado.
1. int a = 11;
2. int b = 0;
3. int result = 0;
4. try {
5. int c = a / b;
6. result = c;
7. } catch(ArithmeticException ex) {
8. result = 0;
9. }
10. return result;
Se lanza una excepción en la línea 5 (cuando 11 se divide entre 0), por lo que no se ejecuta el resto de la instrucción try (línea 6). En su lugar, la excepción se captura en la línea 7 y se devuelve un resultado de 0.
Pon a prueba tu conocimiento