2. Excepciones
Una excepción es un proceso que se crea automáticamente
cuando se genera un error.
Cuando se genera un error, se crea un objeto que maneja el
error.
Algunos ejemplos de situaciones anormales que pueden generar error son:
o Llamar a un método sobre un objeto null.
o Dividir un numero por cero (0).
o Abrir un archivo que no existe para leerlo.
o Quedarnos sin memoria en la maquina virtual de java (JVM).
o Acceder a un aposición de un vector mayor que la longitud del mismo.
3. El bloque try
1 Dentro del bloque try, se incluye las
instrucciones que se necesitan validar o las
instrucciones que es posible que generen un
error.
try {
instrucciones;
}
4. El bloque catch
Este bloque se ejecuta cuando se genera un error.
Captura el error que se generó dentro del try.
try {
instrucciones;
}
Catch (ExcepcionPresentada objeto) {
acciones;
}
Tipo de error o excepción
Objeto que captura
el error
Se ejecuta las acciones dentro
del bloque catch
5. Ejemplo: operación aritmética. División de dos números decimales
public doublé división(){
double a= 10, b=5, c;
try {
c= a / b;
System.out.println(“El resultado de la división es: ”+c);
}
Catch (ArithmeticException ex) {
System.out.println(“División por cero: ”+ ex.toString);
}
}
6. 1 Se pueden definir múltiples bloques catch y encada uno
de ellos podemos capturar un error diferente.
Múltiples bloques catch
Ejemplo: El siguiente ejemplo muestra en el primer
bloque catch la división por cero y en el segundo se
detecta un índice invalido.
7. public doublé división() {
double a= 10, b=5, c ;
double [ ] p = new double [3];
try {
c= a / b;
System.out.println(“El resultado de la división es: ”+c);
p[i] = c;
}
Catch (ArithmeticException ex) {
System.out.println(“División por cero: ”+ ex.toString);
}
Catch (ArrayIndexOutOfBoundsException ex1) {
System.out.println(“Índice invalido: ”+ ex1.toString);
}
}
8. La subclase Exception
1 Este tipo de
excepción se
ejecuta si no
existe un bloque
catch especifico
para manejar el
error.
public doublé división() {
double a= 10, b=5, c ;
double [ ] p = new double [3];
try {
c= a / b;
System.out.println(“El resultado de la división es: ”+c);
p[i] = c;
}
Catch (Exception ex) {
System.out.println(“División por cero: ”+ ex.toString);
}
Catch (Exception ex1) {
System.out.println(“Índice invalido: ”+ ex1.toString);
}
}
9. Tipos de errores - excepciones.
A continuación se presentan algunos tipo de error que se debe derivar para que se genere la excepción
correspondiente.
1 ArithmeticException: se genera cuando existe un error aritmético.
2 ArrayIndexOutOfBoundsException: Se genera en caso de un índice
invalido.
3 IllegalArgumentException: se genera al utilizar un parámetro
invalido.
NegativeArraySizeException: se genera al tratar de inicializar un
arreglo con tamaño negativo
3
4
10. 5 NullPointerException: se genera en caso de efectuar alguna operación
invalida con objetos cuyo valor es null o indefinido.
6 NumberFormatException: se genera al utilizar un parámetro invalido
en caso de conversiones de cadenas de caracteres a datos numéricos..
7 ClassNotFoundException: Se genera esta excepción cuando al intentar
crear un objeto no se encuentra la clase para poderlo hacer.
1 DataFormatException: se genera cuando se trata de leer un archivo y
los datos no corresponden al formato esperado.
11. La instrucción throw
Esta instrucción se utiliza para ejecutar un
bloque catch.
throw nombre-de-una-exception;
Al encontrarse la instrucción throw, el
control del programa se traslada al bloque
catch que maneja la excepción.
public void metodo(int a) {
try {
if (a ==1)
throw new RuntimeException();
if (a==2)
throw new IllegalArgumentException();
if (a==3)
throw new AritmeticException();
}
Catch (IllegalArgumentException e) {
System.out.println(“a=2 : ”+ e.toString);
}
Catch (AritmeticException e) {
System.out.println(“a=3: ”+ e.toString);
}
Catch (RuntimeException e) {
System.out.println(“a=1: ”+ e.toString);
}
}
12. La instrucción throws
Esta instrucción se utiliza para implementar una excepción personalizada.
Función throws nombre-exception {
}