Excepciones Unidad 5

19
EXCEPCIONES Unidad 5 Programación Orientado a Objetos

Transcript of Excepciones Unidad 5

EXCEPCIONES

Unidad 5 Programacin Orientado a Objetos

DefinicinUna excepcin es un objeto que se genera automticamente cuando se produce un acontecimiento circunstancial que impide el normal funcionamiento del programa. Por ejemplo: Dividir por cero No encontrar un determinado fichero Utilizar un puntero nulo en lugar de una referencia a un objeto

El objeto generado excepcin contiene

informacin sobre el acontecimiento ocurrido y transmite esta informacin al mtodo desde el que se ha generado la excepcin.

La

ocurrencia de estas situaciones excepcionales provocar la terminacin no controlada del programa o aplicacin.

Excepcin estndarEn Java las situaciones que pueden provocar un fallo en el programa se denominan excepciones.

Las excepciones pueden originarse porque el programa hace algo ilegal (caso normal).

El siguiente cdigo de ejemplo origina una

excepcin de divisin por cero: public class PruebaExcepcion { public static void main( String[] args ) { int i=0, j=0, k; k = i/j; // Origina un error de divisin de 0 } }

Si compilamos y ejecutamos esta aplicacin

en Java, obtendremos la siguiente salida por pantalla:

java.lang.ArithmeticException: / by zero at PruebaExcepcion.main

Solucin tradicional La solucin tradicional consista en que los

mtodos devolvieran un valor en el que indicaran si en su ejecucin se haba producido alguna incidencia que pudiera dar lugar a un error en el futuro. Por ejemplo la funcin fopen del C se utiliza

para abrir un fichero en el disco. Si este fichero no puede ser abierto la funcin devuelve el valor null.

Desventajas de la solucin tradicional El encargado de llamar a la funcin debe

acordarse de recoger el valor de retorno. El cdigo puede convertirse en una sucesin

de comprobaciones de situaciones errneas. El encargado de llamar a la funcin puede no

saber tratar el error y necesite pasrselo a mtodos de niveles superiores.

Ventajas de las excepciones Si no se quiere las excepciones no pueden ser

obviadas El lenguaje provee de construcciones del tipo

try - catch - finally que facilitan la escritura del cdigo en presencia de excepciones y evita tener que incluir sentencias condicionales cada vez que se llama a un mtodo que puede generar una excepcin.

Ventajas de las excepciones Los mtodos que no sepan cmo tratar una

excepcin pueden pasarla a niveles superiores a travs de la clusula throws.

Ejemplo sin excepcinPublic class Piscina { private int nivel; public final int MAX_NIVEL; public Piscina(int max) { if (max