Excepciones en java
Miguel Ángel Corella 26 de Septiembre de 2005
Excepciones
Excepciones (I)
• Interrupciones de ejecución y/o saltos dentro de un programa de maneraindependiente a su localización. • El salto va acompañado de cierta información referente a la excepción (p.e. tipo de excepción, motivo…). • Utilidad principal: Tratamiento de errores.
– throw: Lanza unaexcepción y envía información sobre el error ocurrido. – catch: Recoge la excepción y la información enviada.
Excepciones (y II)
void f () throws DivisionCero { ... if (...) throw new DivisionCero(x, y); ... }
try { ... obj.f (); ... } catch (DivisionCero obj) { ... }
Ejemplo desarrollado (I)
• Lanzamiento de excepciones:
class CuentaBancaria { ... boolean bloqueada; ... voidretirar (long cantidad) throws SaldoInsuficiente, CuentaBloqueada { if (bloqueada) throw new CuentaBloqueada (numero); else if (cantidad > saldo) throw new SaldoInsuficiente (numero, saldo); else saldo -=cantidad; } }
Ejemplo desarrollado (II)
• Clases para excepciones:
class SaldoInsuficiente extends Exception { long numero, saldo; SaldoInsuficiente (long num, long s) { numero = num; saldo = s;} String descripcion () { return "Saldo insuficiente en cuenta " + numero + "\nDisponible: " + saldo; } } class CuentaBloqueada extends Exception { long numero; CuentaBloqueada (long num) { numero =num; } String descripcion () { return "La cuenta " + numero + " esta bloqueada"; } }
Ejemplo desarrollado (III)
• Captura y procesamiento de excepciones:
static public void main (String args[]){ try { new CuentaBancaria () .retirar (100000); } catch (SaldoInsuficiente excep) { System.out.println (excep.descripcion ()); } catch (CuentaBloqueada excep) { System.out.println (excep.descripcion()); } }
Se ejecuta el primer catch de tipo compatible
Ejemplo desarrollado (y IV)
• ¿Y si no se capturan las excepciones?
static public void main (String args[]) throws CuentaBloqueada,...
Regístrate para leer el documento completo.