Excepciones
El término excepción se utiliza en Java cuando algo salió mal, es decir, cuando ocurrió un error.
Como todos sabemos, existe un gran número de situaciones por las que el software puede fallar,
pero si queremos hacer software de calidad, debemos tomar conciencia que las clases de
aplicaciones o applets que desarrollemos, en Java, deben manejar las excepciones.
En Java unaexcepción es un objeto que define una situación inusual o un error.
Una excepción es entonces un evento que sucede con algún error, pero es algo que no debiera
pasar, resulta en la lógica de la clase en la que ocurre, y debemos de cuidarnos de no cometer un
error de lógica.
Normalmente Java nos detecta algunos errores en los que pudiera suceder una excepción y nos
pide que declaremos el lugar en elque puede ocurrir, si es que no la manejaremos, entonces un
programa puede estar diseñado para procesar las excepciones en tres formas distintas:
•
•
•
No manejarla
manejar la excepción cuando ocurre
manejar la excepción en algún otro punto del programa
Una excepción tan sencilla se puede revisar en el siguiente ejemplo:
public class AplicacionExcepcion1 {
public static voidmain(String args[]) {
System.out.println("Antes del error");
System.out.println("Division por cero = " + 3 / 0);
System.out.println("Despues del error");
}
}
En este ejemplo observamos como primero se despliega un letrero “Antes del error”, después
se despliega un cálculo en el que sabemos que habrá un error y finalmente se despliega otro
letrero “Después del error”.
Al ejecutar la aplicaciónanterior observamos lo que sucede:
Vemos como se despliega el letrero “Antes del error”, pero después observamos el error de
ejecución denominado en Java una excepcion, la Arithmetic Exception, esta excepción sucede
cuando tratamos de dividir un número por cero, por eso mismo no alcanzamos a ver el
mensaje “Después del error”, ya que al haber error de ejecución, se termina de usar laaplicación.
Hay excepciones las cuales el compilador las marca desde un inicio y nos pide que nos
protejamos para eso, por ejemplo la siguiente aplicación fue escrita para pedir un número al
usuario y obtener el cuadrado de ese número:
import java.io.*;
public class AplicacionExcepcion1 {
public static void main(String args[]) {
BufferedReader in =
new BufferedReader(newInputStreamReader(System.in));
}
int n;
System.out.println("Da el numero");
n = Integer.parseInt(in.readLine());
System.out.println("El cuadrado del numero = " + n*n);
}
Pero al compilar dicha aplicación observamos que no compila, el compilador manda el
siguiente mensaje:
Nos está diciendo que al momento de tratar de leer un dato, puede haber un error de
ejecución el cual debe ser capturado paraque la aplicación no falle. Pero que tipo de error
puede ocurrir, pues si se supone que se pide un número y el usuario no da un número, sino
un nombre, entonces habrá problemas con la aplicación y se terminará.
La aplicación se compila entonces marcando la excepción que puede lanzar de la siguiente
manera: import java.io.*;
public class AplicacionExcepcion2 {
public static voidmain(String args[]) throws IOException {
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
}
int n;
System.out.println("Da el numero");
n = Integer.parseInt(in.readLine());
System.out.println("El cuadrado del numero = " + n*n);
}
Vemos que al declarar lo que está en repintado, la aplicación si compila, es decir, ahora si
podemos ejecutarla tranquilamente, porejemplo:
Pero si nos ponemos a analizar, la aplicación todavía puede fallar, es decir, ¿qué pasa si en lugar
de un número entero le damos un número con decimales?
Vemos como da una excepción llamada NumberFortmatException, con el valor de 5.5
Por otra parte, ¿qué pasa si le damos letras en lugar de números?
Vemos como también nos da el error de excepción NumberFormatException, con el...
Regístrate para leer el documento completo.