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.