0% encontró este documento útil (0 votos)
21 vistas8 páginas

Clase 12 - Fundamentos de Programacion

Este documento describe el manejo de excepciones en Java utilizando los bloques try, catch y finally. Explica que try contiene el código que podría generar errores, catch contiene el código para manejar errores, y finally contiene código que se ejecuta independientemente de si hay errores o no. Incluye ejemplos de cómo estos bloques afectan el flujo de ejecución cuando se generan y no se generan errores.

Cargado por

andreina herrera
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas8 páginas

Clase 12 - Fundamentos de Programacion

Este documento describe el manejo de excepciones en Java utilizando los bloques try, catch y finally. Explica que try contiene el código que podría generar errores, catch contiene el código para manejar errores, y finally contiene código que se ejecuta independientemente de si hay errores o no. Incluye ejemplos de cómo estos bloques afectan el flujo de ejecución cuando se generan y no se generan errores.

Cargado por

andreina herrera
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Materia

FUNDAMENTOS DE PROGRAMACION

Clase #12 – Manejo de Excepciones en Java (try, catch, finally)

PAGINA 1 Docente: Luis Ivanoff Vázquez


TABLA DE CONTENIDOS

Manejo de Excepciones en Java ............................................................................................. 3


Bloque try ................................................................................................................................. 3
Bloque catch............................................................................................................................ 4
Bloque finally ........................................................................................................................... 4
Ejemplo de una clase Java sin errores ........................................................................... 5
Ejemplo de una clase Java con errores .......................................................................... 6
Mensaje de excepción lanzado por Java........................................................................ 7

PAGINA 2 Docente: Luis Ivanoff Vázquez


Manejo de Excepciones en Java
El lenguaje Java implementa su propio sistema de gestión de excepciones, o
también llamado sistema de tratamiento de errores.
El control de flujo de un programa Java sabemos hasta ahora que se lleva a
cabo con sentencias del tipo if, while, for, switch, case, break, etc.
Estas sentencias forman un conjunto de palabras reservadas que determinan
cierta funcionalidad. Pues bien, ninguna de ellas tiene en cuenta que se
puedan producir errores en tiempo de ejecución de un programa y por tanto
Java necesita de un conjunto de palabras nuevas para tener en cuenta que
cualquier código puede fallar o ser mal interpretado en tiempo de ejecución.
Las tres palabras reservadas que utiliza el Java para el tratamiento de
excepciones son:
• try
• catch
• finally

Existen dos maneras de tratar en errores en Java, capturarlos o lanzarlos.


El uso de try, catch y finally corresponde a la captura de errores.
Vamos a poner un símil sencillo: un error es algo inesperado, como encontrarte
un ladrón dentro de tu casa. Cuando nos encontramos con un error podemos
capturarlo o lanzarlo (lo que equivale a tratar de hacer huir al ladrón, de hacer
que salga fuera del lugar donde se encuentra).

Bloque try
Try en inglés es el verbo intentar, así que todo el código que vaya dentro de
esta sentencia será el código sobre el que se intentará capturar el error si se
produce y una vez capturado hacer algo con él. Lo ideal es que no ocurra un
error, pero en caso de que ocurra un bloque try nos permite estar preparados
para capturarlo y tratarlo.

SINTAXIS
try {
System.out.println(“código donde podría ocurrir un error”);
}

PAGINA 3 Docente: Luis Ivanoff Vázquez


Bloque catch
En este bloque definimos el conjunto de instrucciones necesarias o de
tratamiento del problema capturado con el bloque try anterior. Es decir, cuando
se produce un error o excepción en el código que se encuentra dentro de un
bloque try, pasamos directamente a ejecutar el conjunto de sentencias que
tengamos en el bloque catch.

SINTAXIS
catch (Exception e) {
System.out.println(“código donde se trata el problema”);
}

(Exception e) significa que cuando se produce un error, Java genera un objeto


del tipo Exception con la información sobre el error y este objeto se envía al
bloque catch.

Bloque finally
En este bloque se podrá definir un conjunto de instrucciones necesarias tanto si
se produce error o excepción como si no y que por tanto se ejecutará siempre.

SINTAXIS

finally {
System.out.println(“bloque de código ejecutado siempre”);
}

PAGINA 4 Docente: Luis Ivanoff Vázquez


Ejemplo de una clase Java sin errores
A continuación, veremos cómo se comporta una clase con tratamiento de
errores pero donde no se produce ningún error.
public class EjemploSinErrores {
public static void main (String [] args) {
try{
System.out.println("Se intenta ejecutar el bloque de instrucciones:");
System.out.println("Instrucción 1.");
System.out.println("Instrucción 2.");
System.out.println("Instrucción 3.");
}

catch (Exception e) {
System.out.println("Instrucciones a ejecutar cuando se produce un error."); }

finally{
System.out.println("Instrucciones a ejecutar siempre haya errores o no."); }
}
}

EJECUCION

Se intenta ejecutar el bloque de instrucciones:


Instrucción 1.
Instrucción 2.
Instrucción 3.
Instrucciones a ejecutar siempre haya errores o no.

Como se podrá observar, se han ejecutado todas las instrucciones del bloque
try y finalmente se ejecutó la instrucción del bloque finally.
No se ejecuta el bloque catch porque no hubo errores.

PAGINA 5 Docente: Luis Ivanoff Vázquez


Ejemplo de una clase Java con errores
A continuación, vamos a ver cómo se comporta una clase Java con tratamiento
de errores cuando se produce un error y cómo afecta al control de flujo del
programa.

public class EjemploConErrores {


public static void main (String [] args) {
try {
System.out.println("Se intenta 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.");
}
catch (Exception e) {
System.out.println("Instrucciones a ejecutar cuando se produce un error");
}
finally {
System.out.println("Instrucciones a ejecutar siempre haya errores o no.");
}
}
}

Se produce un error porque el método parseInt de la clase Integer espera que


dentro de las comillas llegue un número y no una letra.
Al no encontrar un valor válido se produce un error de tipo
java.lang.NumberFormatException.

EJECUCION

Se intenta ejecutar el bloque de instrucciones:


Instrucción 1.
Instrucciones a ejecutar cuando se produce un error
Instrucciones a ejecutar siempre haya errores o no.

Como podemos observar, ejecutamos las instrucciones del bloque try que no
dan errores, pero cuando en una instrucción se produce un error o excepción
inesperada se deja de ejecutar el código del bloque try, y pasamos a ejecutar el
código del bloque catch. Hay un salto o cambio en el flujo del programa.
Finalmente se ejecutan, en todo caso, las instrucciones del bloque finally como
hemos comentado anteriormente.
El bloque finally no es obligatorio, es decir, puede existir un bloque try catch y
no existir bloque finally.

PAGINA 6 Docente: Luis Ivanoff Vázquez


Ahora veremos cómo mostrar el error capturado, agregando la siguiente línea
de código en el bloque catch:
System.out.println("Se ha producido un error " + e);

EJECUCION

Intentamos ejecutar el bloque de instrucciones:


Instrucción 1.
Se ha producido un error: java.lang.NumberFormatException: For input string: "M"
Instrucciones a ejecutar siempre haya errores o no.

CONCLUSIONES

Los errores en Java se pueden capturar o lanzar. La captura se realiza con


bloques try catch, donde por un lado tenemos el código para el caso de flujo sin
problemas del programa y por otro el código con instrucciones para el
tratamiento de errores.

Mensaje de excepción lanzado por Java


import java.util.Scanner;

public class CalcularEdad {


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int Edad, edadNueva;

System.out.println("Por favor ingrese su nombre");


String nombre = sc.nextLine();

System.out.println("Bienvenido " + nombre + ". Por favor ingrese su edad");


int edad = sc.nextInt();

edadNueva= (edad + 10);

System.out.println("Gracias " + nombre + " en 10 años Ud. tendra " + edadNueva + " años");
}
}

EJECUCION

Por favor ingrese su nombre


Maria
Bienvenido . Por favor ingrese su edad
fds
Exception in thread "main" java.lang.NumberFormatException: For input string: "fds"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Sourc
at CalcularEdad.main(CalcularEdad.java:18)

PAGINA 7 Docente: Luis Ivanoff Vázquez


Para capturar este tipo de errores, agregaremos try y catch a la clase
CalcularEdad de la siguiente manera:
import java.util.Scanner;
import utils.misValidaciones;

public class CalcularEdad {


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int Edad, edadNueva;

try {
System.out.println("Por favor ingrese su nombre");
String nombre = sc.nextLine();

System.out.println("Bienvenido " + nombre + ". Por favor ingrese su edad");


int edad = sc.nextInt();

edadNueva= (edad + 10);

System.out.println("Gracias " + nombre + " en 10 años Ud. tendra " + edadNueva + " años");

} catch (Exception ex) {


System.out.println("Dato incorrectos, intente de nuevo");
System.out.println("");
}

}
}

EJECUCION

Por favor ingrese su nombre


Maria
Bienvenido Maria. Por favor ingrese su edad
fds
Datos incorrectos, intente de nuevo

PAGINA 8 Docente: Luis Ivanoff Vázquez

También podría gustarte