Tratamiento de excepciones
El bloque try – catch – finally
El bloque try – catch – finally sirve para controlar la ejecución de código de forma que, si se produce una excepción, ésta se puede tratar de forma controlada y no se aborta la ejecución del programa.
El formato de este bloque es el siguiente:
try {
Instrucciones que se pretenden ejecutar
(si se produce una excepción puede que no se ejecuten todas ellas)
} catch (Exception e) {
Instrucciones que se van a ejecutar cuando se produce una excepción
} finally {
Instrucciones que se van ejecutar, tanto si se producen excepciones como si no.
}
El bloque finally es opcional.
Ejemplo:
public class Programa {
public static void main (String [] args) {
try {
System.out.println("Intentamos ejecutar el bloque de instrucciones:");
System.out.println("Instrucción 1.");
int n = Integer.parseInt("M"); //error forzado en tiempo de ejecución.
System.out.println("Instrucción 2.");
System.out.println("Instrucción 3, etc.");
} catch (Exception e) {
System.out.println("Instrucciones a ejecutar cuando se produce un error");
} finally {
System.out.println("Instrucciones a ejecutar finalmente tanto si se producen errores como si no.");
}
}
}
¿Cómo tratar la excepción que se puede producir al leer un número entero por teclado?
Class Scanner
import java.util.InputMismatchException;
import java.util.Scanner;
/**
* Clase para entender la captura de excepciones.
*
*/
public class EjemploExcepcion {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in) ;
int numero;
System.out.println("Escriba un número entero: ");
try {
numero = teclado.nextInt();
System.out.println("El número tecleado es: " + numero);
} catch (NumberFormatException ex1) {
System.err.println("Error: no es un número entero válido, " + ex1.getMessage());
} catch (InputMismatchException ex2) {
System.err.println("Error: formato no válido, " + ex2.getMessage());
} finally {
System.out.println("Fin");
}
}
}
Más información:
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.