Download Diapositiva 1 - Docencia FCA-UNAM

Document related concepts
no text concepts found
Transcript
UNIVERSIDAD LATINA (UNILA)
IV.- EXCEPCIONES
LE, EI, Profesor Ramón Castro Liceaga
Introducción
• En algunos lenguajes orientados a objetos, cuando se
ejecuta un programa pueden surgir algún evento
especial que pueden alterar el desarrollo normal del
mismo, por ejemplo cuando el resultado de un
calculo falla por una definición numérica incorrecta o
tratar de acceder a un arreglo de datos fuera del
limite, etc.
• A este tipo de error se le conoce como excepción y
los lenguajes orientados a objetos nos pueden
ayudar para resolver estos problemas.
Que son las excepciones
• El término excepción es un forma corta da la
frase “suceso excepcional” y puede definirse
de la siguiente forma:
• Una excepción es un evento que ocurre
durante la ejecución del programa que
interrumpe el flujo normal de las instrucciones
Problemas que pueden causar las excepciones
• Muchas clases de errores pueden causar las
excepciones, desde serios problemas de
hardware, como la avería de un disco duro, a
los simples errores de programación, como
tratar de acceder a un elemento de un array
fuera de sus límites, no poder conectarse a
una Base de Datos, etc.
Java y las excepciones
• En Java el manejo de excepciones es
automatico
Lanzar una excepción
• En terminología java, crear una objeto
exception y manejarlo por el sistema de
ejecución se llama lanzar una excepción.
Después de que un método lance una
excepción, el sistema de ejecución entra en
acción para buscar el manejador de la
excepción.
Metodos de la pila de excepciones
• El conjunto de “algunos” métodos posibles
para manejar la excepción es el conjunto de
métodos de la pila de llamadas del método
donde ocurrió el error.
Ventajas en el manejo de excepciones
•
Mediante el uso de excepciones para manejar
errores, Java tienen las siguientes ventajas frente a
las técnicas de manejo de errores tradicionales.
1. Separa el Manejo de Errores del Código “Normal”
2. Propagar los Errores sobre la Pila de Llamadas
3. Agrupar los Tipos de Errores y la Diferenciación de
éstos
Jerarquía de las Excepciones
Tipos de Excepciones
Tenemos tres formas diferentes.
1) La máquina Virtual de Java puede generar una excepción como
producto de un error interno que está fuera de su control. Estas
excepciones generalmente no pueden ser manejadas por el
programa.
2) Excepciones estándar: Son excepciones que deben ser
manipuladas, se producen cuando se ejecuta una división por cero o
se trata de acceder a un arreglo con un índice fuera de límites son
generadas por errores en el código del programa.
3) El programador puede generar una excepción manualmente
utilizando la estructura throw. Sin importar cómo se produjo la
excepción, se maneja de la misma forma.
Manejo de Excepciones
• Cuando se produce un error en un método, este crea un
objeto 'exception' el cual contiene información sobre la
excepción como el tipo de excepción y el estado del
programa al presentarse el problema.
• El sistema de ejecución es el responsable de buscar
algún bloque de código que maneje la excepción.
• Al hecho de crear una objeto exception y manejarlo por
el sistema de ejecución se le conoce como lanzar una
excepción (throwing an exception).
Sintaxis en el manejo de excepción en Java
import java.io.IOException;
// ...
public static void main(String[] args) {
try {
// Se ejecuta algo que puede producir una excepción
} catch (IOException e) {
// manejo de una excepción de entrada/salida
} catch (Exception e) {
// manejo de una excepción cualquiera
} finally {
// código a ejecutar haya o no excepción
}
}
Bloque try/catch o try/finally en Java
int valor;
try {
for( x=0,valor = 100; x < 100; x ++ )
valor /= x;
}
catch( ArithmeticException e ) {
System.out.println( "Matemáticas locas!" );
}
catch( Exception e ) {
System.out.println( "Se ha producido un error" );
} finally {
// código a ejecutar haya o no excepción
}
Bloque try/catch
Sintaxis
Prueba y verifica la excepción que te
genera este código
Agrega el código para
el manejo de la
excepción al mismo
programa
Excepción producida por un método y atrapada en otro.
Excepción generada y atrapada en un método.
Recuperación de la ejecución después de una excepción..
Catch Múltiples
Manejo de excepciones generales y específicas
Bloques try anidados
Finally
Throws
Conclusión
• Existen diferentes sintaxis para el manejo de
excepciones, en el caso de Java la sintaxis
básica es el bloque try/catch o try/finally.