Los distintos tipos de excepción se gestionan mediante un controlador
de excepciones.
Los controladores aparecen después del bloque try y se identifican
mediante la palabra clave catch.
Cada controlador es un pequeño método que toma un único argumento
de un tipo concreto que corresponde con el tipo de excepción
capturada.
try{
...
}catch(TipoExcepción1 idExcepción1){
}
catch(TipoExcepción2 idExcepción2){
}
...
El sistema es el encargado de lanzarla.
Cuando se produce una excepción de este tipo el sistema invoca al
método printStackTrace que proporciona información sobre el
método que produjo la excepción.
Junto con las excepciones de la clase Error, forman las excepciones
no comprobadas.
No es necesario capturarlas.
Cualquier otra excepción es una excepción comprobaday es
necesaria su captura.
El compilador da un error si no se captura una excepción comprobada.
static long Factorial(int n) throws NumeroNegativoException{
throw new NumeroNegativoException();
if(n<=0)
int f=1;
for(int i=1;i<=n;i++)
f*=i;
return f;
}
public static void main(String args[]){
int i;
BufferedReader entrada = new BufferedReader(
new InputStreamReader(System.in));
String s = new String();
try{
s=entrada.readLine();
//Convertir la entrada en entero
i = Integer.parseInt(s);
System.out.println("Factorial de " + i + ": " + Factorial(i));
} catch(NumeroNegativoException e){
System.err.println(e.getMessage());
} catch(IOException e){
} catch(NumberFormatException e){ //Se lanza la cadena s no se puede convertir a entero
Uno de los métodos que permite la entrada de datos por
teclado es el método readLine().
En una de sus versiones pertenece a la clase BufferedReader.
Desciende de la clase Reader que proporciona una entrada basada en
Su constructor precisa un objeto de la clase InputStreamReader.
caracteres Unicode.
Reciben con flujo (stream) de entrada un fluyo de bytes y lo convierten a
caracteres Unicode.
Para envolver la entrada de teclado (System.in) se utilizará un
constructor similar a new InputStreamReader(System.in).
La cabecera de readLine() contiene una cláusula throws
IOException por lo que es necesario utilizar un bloque try para
su utilización.
El método devuelve una cadena que deberemos convertir al formato
new BufferedReader(new InputStreamReader(System.in));
return Integer.parseInt(leer());
}
//Leer un dato entero
public static int leerInt() throws IOException{
}
//Leer un dato double
public static double leerDouble() throws IOException{
}
//Leer una cadena
public static String leerString() throws IOException{
}
Comentarios de: Tema 4. Excepciones en Java - Programación en Java (0)
No hay comentarios