java

Páginas: 9 (2089 palabras) Publicado: 2 de abril de 2014
Curso de Java

TEMA 8
Excepciones en Java
Manejo de Excepciones
Cuando un programa Java viola las restricciones semánticas del lenguaje (se
produce un error), la máquina virtual Java comunica este hecho al programa
mediante una excepción. La aplicación Java no debe morir y generar un core (o un
crash en caso del DOS), al contrario, se lanza (throw) una excepción y se captura
(catch) pararesolver esa situación de error.
Muchas clases de errores pueden provocar una excepción, desde un
desbordamiento de memoria o un disco duro estropeado hasta un disquete
protegido contra escritura, un intento de dividir por cero o intentar acceder a un
vector fuera de sus límites. Cuando esto ocurre, la máquina virtual Java crea un
objeto de la clase exception o error y se notifica el hechoal sistema de ejecución.
Se dice que se ha lanzado una excepción (“Throwing Exception”).
Un método se dice que es capaz de tratar una excepción (“Catch Exception”) si ha
previsto el error que se ha producido y prevé también las operaciones a realizar
para “recuperar” el programa de ese estado de error. En el momento en que es
lanzada una excepción, la máquina virtual Java recorre la pila dellamadas de
métodos en busca de alguno que sea capaz de tratar la clase de excepción lanzada.
Para ello, comienza examinando el método donde ese ha producido la excepción; si
este método no es capaz de tratarla, examina el método desde el que se realizó la
llamada al método donde se produjo la excepción y así sucesivamente hasta llegar
al último de ellos. En caso de que ninguno de los métodosde la pila sea capaz de
tratar la excepción, la máquina virtual Java muestra un mensaje de error y el
programa termina.
Los programas escritos en Java también pueden lanzar excepciones explícitamente
mediante la instrucción throw, lo que facilita la devolución de un “código de
error” al método que invocó el método que causó el error. Veamos un ejemplo.
Jesús Cáceres Tello

Pág. 1 - 11 Curso de Java

public class Excepciones1 {
public static void main(String[] arg) {
metodo();
}

}

static void metodo() {
int divisor = 0;
int resultado = 100/divisor;
System.out.println(“Resultado: ” + resultado);
System.out.println(“Una Suma:” + (3+4));
}

Ejemplo 8.1: Lanzando una excepción

Si intentamos ejecutar este programa obtendremos el siguiente resultado:

Lo que haocurrido es que la máquina virtual Java ha detectado una condición de
error y ha creado un objeto de la clase java.lang.ArithmeticException. Como el
método donde se ha producido la excepción no es capaz de tratarla, se trata por la
máquina virtual Java, que muestra el mensaje de error anterior y finaliza la
ejecución del programa.

Generación de Excepciones en Java
Partiendo de la base deque cualquier método puede lanzar excepciones en Java, es
aconsejable tener declaradas todas las posibles excepciones que se puedan generar
en dicho método, para lo cual se utilizará la cláusula throws de la declaración de
métodos.
Para que se pueda lanzar una excepción es necesario crear un objeto de tipo
Exception o alguna de sus subclases como ArithmeticException y lanzarlo mediante
lainstrucción throw como se muestra en el siguiente ejemplo:

Jesús Cáceres Tello

Pág. 2 - 11

Curso de Java

class LanzaExcepcion {
public static void main(String argumentos[]) throws ArithmeticException {
int i=1, j=2;
if (i/j< 1)
throw new ArithmeticException();
else
System.out.println(i/j);
}
}
Ejemplo 8.2: Lanzamiento de una excepción desde el método main de una claseJerarquía de clases de las excepciones en Java

Jesús Cáceres Tello

Pág. 3 - 11

Curso de Java

Un gráfico un poco más claro de esta jerarquía de clases

Captura de Excepciones
Un manejador de excepciones es una porción de código que se va a encargar de
tratar las posibles excepciones que se puedan generar. En Java, de forma similar a
C++ se pueden tratar las excepciones previstas por el...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Java
  • Java
  • java
  • JAVA
  • java
  • java
  • javiera
  • Java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS