Unidad V Excepciones
Programación Orientada a Objetos
V. Excepciones 5.1 Definición de Excepción Una excepción es una condición anormal que surge en una secuencia de código en el tiempo de ejecución. En otras palabras, una excepción, es un error en tiempo de ejecución. La Excepción es un objeto que define una situación inusual o errónea en el funcionamiento de un programa. El lenguaje JAVA incorpora soporte para manejar estas situaciones. Las Excepciones son manejadas por código fuera del flujo normal de control del programa. La gestión de excepciones en Java evita estos estos problemas e incorpora el manejo manejo de errores el tiempo de ejecución al mundo de la programación orientada a objetos.
5.2 Tipos de Excepciones Todos los tipos de excepciones son objetos de clases derivadas de la clase
“Throwable” (lanzable) definida en
el paquete Java.lang. La figura siguiente muestra algunas de las clases de la jerarquía de excepciones:
Throwable Exception RuntimeException ClassNotFoundException IOException EOFException
Además, esta clase se encuentra en la parte superior de la jerarquía de clases Excepción. Inmediatamente después de Throwable se encuentra dos subclases que dividen las excepciones en 2 grupos. Un grupo es el encabezado por Exception”. Esta ”. Esta clase se utiliza para condiciones excepcionales que los usuarios “
de programas deben capturar. Esta es también la clase de la que derivan las subclases necesarias para crear los tipos propios de excepciones. Una subclase de Exception importante, es la denominada “RuntimeException”, cubre excepciones ocurridas al ejecutar operaciones sobre los datos que manipula la aplicación y que residen en memoria,
por
ejemplo,
ArithmeticException
(la
división
por
cero),
NullPointerException
valido), NumberFormatException . IndexOutOfBoundsException (utilización de un índice de arreglo no valido),
1 Instituto Tecnológico de Toluca
Lic. Alma Patricia Vásquez González
o
Unidad V Excepciones
La subclase (java.io).
Programación Orientada a Objetos
IOException” cubre las excepciones ocurridas al ejecutar una operación de entrada o salida
“
El otro grupo está encabezado por la clase Error que define excepciones no esperadas por el programa, en “
”
condiciones normales. El intérprete Java utiliza las excepciones del tipo error para indicar errores relacionados con el propio tiempo de ejecución. Un ejemplo de este tipo de error, es el desbordamiento de una pila y otros que se crean en respuesta a fallos catastróficos que normalmente no pueden ser ge stionados por el programa.
5.4 Gestión de Excepciones Una excepción en Java, es un objeto que describe una condición excepcional es decir, un error que ha ocurrido en una parte de un código. Cuando surge una condición excepcional, se crea un objeto que representa esa condición, y se envía al método que ha originado el error. Ese método puede decidir entre gestionar él mismo la excepción o pasarla. En cualquiera de los 2 casos, en algún punto la excepción es capturada y procesada. Las excepciones generadas por el código, se usan normalmente para informar de alguna condición de error, en la parte del código que llama al método. Las excepciones generadas por Java se refieren a errores fundamentales que violan las reglas del lenguaje Java o las restricciones del entorno de ejecución de Java. La gestión de excepciones en Java se lleva a cabo mediante cinco palabras clave:
try
catch
throw
throws
finally
Las sentencias del programa que se quiera controlar se incluyen en un grupo o bloque try . El código puede capturar esta excepción, utilizando catch, y gestionarla de manera racional. Las excepciones, generadas por el
sistema son automáticamente enviadas por el intérprete de Java. Para enviar manualmente una excepción se utiliza la palabra c lave throw. Se debe especificar mediante la cláusula throws, cualquier excepción que se envíe desde un método. Se debe poner cualquier código que el programador desee que se e jecute siempre, en el método finally. Un ejemplo de un bloque de gestión de excepciones es la siguiente: int dato =0; try{ dato= Integer.parseInt(BR.readLine( )); } catch(NumberFormatException e ) { System.err.printl(“Err or:” + e.getMessage()); } finally { return dato; } 2 Instituto Tecnológico de Toluca
Lic. Alma Patricia Vásquez González
Unidad V Excepciones
Programación Orientada a Objetos
Excepciones de Java Clase de Excepción
Significado
ArithmeticException
Una condición aritmética excepcional ha ocurrido. Por ejemplo una división por cero (0).
ArrayIndexOutOfBoundsException
Una matriz fue accedida con un índice legal o fuera de los límites permitidos.
NullPointerException
Se intentó utilizar null donde se requería un objeto
NumberFormatException
Se intentó convertir una cadena con un formato inapropiado en un número.
FileNotFoundException
Archivo no encontrado
EOFException
Se encontró el fin de archivo
Manejo y Lanzamiento de Excepciones Cuando un método se encuentra con una anomalía que no puede resolver lo lógico es que se lance (throw) una excepción, esperando que quien lo llamó directa o indirectamente lo atrape (catch) y maneje la anomalía. Incluso él mismo podría atrapar y manipular dicha excepción. Si la excepción no se atrapa el programa finalizará automáticamente. Las palabras try y catch trabajan conjuntamente y pueden traducirse así, poner a prueba un fragmento de código por si se lanza una excepción si se ejecuta satisfactoriamente continuar si no atrapar la excepción y manejarla.
Lanzar una excepción. Lanzar una excepción equivale a crea un objeto de la clase de la excepción para manipularlo fuera del flujo normal de ejecución del programa. Para lanzar una excepción se utiliza la palabra reservada throw y para crear un objeto, new. Por ejemplo, volviendo al método dato, de la clase leer, expuesta anteriormente si ocurre un error cuando se ejecuta el método readLine, se supone que este ejecutara una sentencia similar a la siguiente: if(error)throw new IOException (); Esta sentencia lanza una excepción de la clase IOException lo que implica crear un objeto de esta clase. Un objeto de estos contiene información acerca de la excepción incluyendo su tipo y su estado del sistema cuando el error ocurrió.
Atrapar una excepción. Una vez lanzada la excepción el sistema es responsable de encontrar, a alguien que la atrape con el objetivo de manipularla. Quien puede hacerlo es el método que hizo la llamada. 3 Instituto Tecnológico de Toluca
Lic. Alma Patricia Vásquez González