Manejo de Excepciones M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Excepciones en Java Una excepción es una condición anormal que surge en una secuencia de código en tiempo de ejecución En Java, una excepción es un objeto que describe una condición excepcional, es decir, un error que ha ocurrido en una parte del código 1 Excepciones en Java Cuando se presenta una de estas condiciones, se crea un objeto que representa la excepción y se envía al método en el que se originó el error Al recibir una excepción, un método puede decidir capturarla o pasarla al método que lo invocó Palabras clave utilizadas para el manejo de excepciones try – Permite señalar un bloque de código en el que es posible que se genere una excepción catch – Indica el tipo de excepción que se puede capturar y el código a ejecutar en caso de que se presente throw – Se utiliza para enviar manualmente una excepción 2 Palabras clave utilizadas para el manejo de excepciones throws – Se utiliza para indicar que un método puede enviar una excepción finally – Marca un bloque de código que debe ejecutarse, independientemente de que se haya presentado o no una excepción El bloque try-catch-finally La forma general de un bloque para manejo de excepciones es la siguiente: try{ // Bloque de código en el que se podría generar un error } catch(Excepcion1 e){ //Código a ejecutar si se presenta una excepción de tipo Excepcion1 } catch(Excepcion2 e){ //Código a ejecutar si se presenta una excepción de tipo Excepcion2 } … finally { //Código a ejecutar antes de que termine el bloque } 3 Tipos de excepciones La clase Throwable es la superclase de todas las excepciones que se pueden generar desde la máquina virtual de Java o a través de una sentencia throw De la misma forma, solamente subclases de Throwable pueden ser capturadas en un bloque catch Tipos de excepciones Java incorpora dos clases que extienden a Throwable, mismas que a su vez definen dos grupos en los que se pueden categorizar las excepciones Exception Error 4 Excepciones Se trata de situaciones excepcionales que el programador debe ser capaz de capturar por medio de la incorporación de los bloques trycatch IndexOutOfBoundsException NegativeArraySizeException NullPointerException Errores Este grupo define excepciones no esperadas por el programa en condiciones normales de ejecución NoClassDefFoundError VirtualMachineError OutOfMemoryError UnknownError 5 Manejo de excepciones Hacer un programa que divida dos números Los números a dividir deberán capturarse desde la línea de comando Identificar todas las posibles excepciones que puedan presentarse en el programa Capturar excepciones Manejo de excepciones Las sentencias try se pueden anidar Un aspecto importante de la captura de excepciones es que podemos indicar el punto en el que continuará la ejecución de un programa después de presentarse un error 6 Utilización de throw Crear una excepción para números negativos Escribir un programa que pida que se capturen números desde el teclado. Se obtendrá la raíz cuadrada de los números capturados. Si se captura un número negativo deberá arrojar la excepción Agregar el código necesario para la captura de las excepciones 7