Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2
Consiste en el tratamiento de errores con
java
Proporciona forma de señalar
acontecimientos inusuales
Proporciona mecanismo de recuperarse de
un error
3
En java los errores son conocidos como
excepciones
Cuando se produce una excepción, se crea
un objeto del mismo tipo de la excepción
La clase Throwable es la superclase de todas
las clases de manejo de errores
4
5
Cuando se genera una excepción, el
programa en java busca un manejador para
el error (handler)
El handler es una porción de código que
identifica el tipo de objeto correspondiente al
error que se ha producido y contiene
sentencias que se van a ejecutar luego de
que ocurrió el error.
6
Se pueden dar varios tipos de errores:
◦ Al tratar de acceder a elementos de arreglos con
un índice mayor al del último elemento
◦ Divisiones para cero
◦ Manejo de archivos
No existe, no se tienen suficientes permisos
◦ Errores accediendo a bases de datos
◦ Errores definidos por el usuario
Tarjeta incorrecta, excede cupo de transferencia, etc.
7
Algunos casos de situaciones anómalas son:
◦ Invocar a un método sobre un objeto
“null”
◦ Intentar abrir un fichero que no existe para
leerlo
◦ Intentar dividir un número sobre 0
8
Checked: Son las excepciones que revisa el
compilador
Unchecked: Son las excepciones que no
revisa el compilador y se dan en tiempo de
ejecución. Ejemplo: RuntimeException
9
10
String getMessage()
◦ Retorna un mensaje grabado en el objeto de
excepción
void printStackTrace()
◦ Escribe en línea de texto el error que ha ocurrido,
pero además dice exactamente en qué línea de
código se produce el error
11
12
Para manejar las excepciones y evitar que un
programa termine por algún error se usa el
bloque: try – catch
El bloque try encierra la porción de código
donde se pueden producir excepciones
Las sentencias del bloque try, que se
encuentran después de la sentencia que
causó la excepción no se ejecutarán
13
El bloque catch contiene el código que se va
a ejecutar una vez que se produce un error
El bloque catch solo puede tener un
parámetro que representa al tipo de
excepción que el manejador puede
procesar
Por cada bloque try, hay por lo menos un
bloque catch, de tal forma que se pueden
capturar varios tipos de excepciones
14
Cuando ocurre una excepcion en una parte del
programa que esta siendo manejada por un bloque try-
catch, se deja de ejecutar el resto de instrucciones del
bloque try y se pasa el control al primer bloque catch
15
El bloque finally siempre se ejecuta
independientemente de si se da o no una
excepción. Es opcional y se lo usa
generalmente para liberar recursos
16
No se permite la división entre cero, en la
aritmética con enteros. Java lanza la
excepción ArithmeticException
Cuando se ingresa un entero no válido se
genera una excepción
NumberFormatException
17
18
19
La sentencia throw (lanzar) se usa en los
métodos para lanzar una excepción que será
revisada por el compilador
◦ throw new NombreClasedeExcepcion()
20
El método que lanza una excepción tiene la
declaración habitual que cualquier otro
método pero se le añade a continuación la
palabra reservada throws seguido de la
excepción o excepciones que puede lanzar.
21
try{ numerador=Integer.parseInt(str1);
denominador=Integer.parseInt(str2);
rango(numerador, denominador);
cociente=numerador/denominador;
respuesta=String.valueOf(cociente); }
22
catch(ExcepcionIntervalo ex){
respuesta=ex.getMessage(); }
System.out.println(respuesta);
23
Palabras clave Descripción
Exception Clase de java que contiene información sobre
una excepción o un error
thows Mecanismo para emitir y recoger excepciones
para así poder tratar un problema
try Bloque que puede causar una excepción
catch Bloque que permite recuperarse de una
excepción o capturarla
finally Bloque que será ejecutado siempre, exista o no
una excepción. Asegura que se ejecuten
instrucciones aunque ocurra o no un problema.
24
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br= new BufferedReader (isr);
try
{
System.out.print("Escriba la calificación como un
entero"+ " ");
calificacion = Integer.parseInt(br.readLine());
}
catch (Exception e)
{
e.printStackTrace();
}
25
System.in es un objeto de la clase InputStream
Para java, un InputStream es cualquier cosa de la
que se leen bytes. Puede ser el teclado, un
fichero, un socket, o cualquier otro dispositivo de
entrada
Si por teclado se ingresa una A mayúscula y con
System.in, se obtendrá un entero de valor 65, que
es el valor del byte correspondiente a la A.
Que hacer para leer palabras o números del
teclado, no bytes?
26
una clase Reader es una clase que lee caracteres
System.in es un InputStream y no un Reader. ¿Cómo
se convierte el System.in en Reader?. Hay una clase
en java InputStreamReader, que hace esta
conversión
Hay que instanciar un InputStreamReader
27
InputStreamReader lee caracteres sueltos, por
lo que debería indicársele cuantos se leen
BufferedReader lee todos los caracteres
BufferedReader br = new BufferedReader (isr);
El funcionamiento de esta clase es igual que
el InputStreamReader. Al pedir una línea
completa de caracteres (un String), se lo pide
al Reader que tenga dentro, los convierte en
String y lo devuelve.
28
Para pedirle un String, se usa el método
readLine(). Este método lee todos los
caracteres tecleados (recibidos si fuera otro
dispositivo de entrada) hasta que encuentra
la pulsación de la tecla <INTRO>, <RETURN> .
String texto = br.readLine();
lee del teclado un String completo y lo
guarda en una variable "texto".
29
Al leer un número del teclado, el usuario
escribe por ejemplo 123, con la clase
BufferedReader se obtiene un String que
contiene "123", es decir, tres caracteres.
Para convertir el String en un número entero
se usa la clase Integer con el método
parseInt
int valor = Integer.parseInt(texto);
30
Crear una clase llamada DivisionNumeros.
Esta clase contendrá un método que
aceptará dos Strings y realizará la división
entre éstos. Use el método parseInt() de la
clase Integer para transformar String a int. Si
los Strings no son números válidos se genera
un NumberFormatException, esta excepción
debe ser capturada y un mensaje de error
debe ser mostrado.
31
Se solicitará ingresar usuario y clave, se
deberá verificar si la clave es mayor de 8
caracteres.
32
Definir una excepción de usuario
denominada rangoExcepcion que
controlará que cada número entero
ingresado por teclado este en el rango de 1
a 20
ExcepcionCalificacionApp
33
class ExcepcionIntervalo extends Exception {
34
try {
..
rango(numerador, denominador)
}
catch (ExcepcionIntervalo ex)
{
respuesta= ex.getMessage();
}
35
static void rango (int num, int den) throws
ExcepcionIntervalo
{
if (num>100)
{
throw new ExcepcionIntervalo ("Numeros
fuera de rango");
}
}
36
El manejo de excepciones permiten lograr un
mejor nivel de calidad y robustez del software
Java permite el ingreso de la información a
través de clases y objetos pre-establecidos
El ingreso de la información requiere de
controles de calidad mediante el manejo de
excepciones
37