Professional Documents
Culture Documents
5/9/2013
Esperando lo inesperado !!
Ocurrencia de sucesos que se consideran excepcionales. Cmo manejar situaciones anmalas Pueden ocurrir durante la ejecucin de un programa
Excepciones
Definicin Tipos de excepciones Propagacin de excepciones Gestin de excepciones
5/9/2013
DEFINICIN DE EXCEPCIN: Una excepcin es un evento que ocurre durante la ejecucin de un programa y que interrumpe el flujo normal de ejecucin
5/9/2013
Se levanta la excepcin: Detener la ejecucin normal del programa. Llamar a un subprograma (manejador de excepciones) que debe ejecutar acciones especiales.
Conceptos fundamentales
MANEJADOR DE EXCEPCIONES Subprograma encargado de llevar a cabo un conjunto de instrucciones que se ejecutan despus de una excepcin. LEVANTAR EXCEPCIN Accin de advertir una excepcin en tiempo de ejecucin.
5/9/2013
Tipos de excepciones:
1. Manejo en lenguajes que no contenan implcito el manejo de excepciones 2. Manejo en lenguajes que s lo contienen y permiten tener:
Excepciones predefinidas por el lenguaje
(Implcitas)
Excepciones definidas por el programador
(Explcitas)
Definicin
C# enva una excepcin cuando ocurre un error en el programa y detiene su ejecucin. Si deseamos que nuestro programa siga ejecutndose despus del error usamos : try para poner en alerta al programa a cerca del cdigo que puede lanzar una excepcin. catch para capturar y manejar cada excepcin que se lance. finally cdigo que se ejecutar haya o no excepciones.
5/9/2013
Definicin
try { [Bloque de cdigo que puede causar errores] } catch { [Qu hacer si sucede un error] } finally { [De cualquier manera, hacer lo siguiente] }
Excepciones
Todas las excepciones derivan de System.Exception
5/9/2013
Algunas excepciones
Clase de excepcin DivideByZeroException Significado Se produce cuando intenta dividir un valor entero o decimal entre cero Un arreglo fue accedido con un ndice ilegal (fuera de los lmites permitidos) Se intent utilizar null donde se requera un objeto Se produce cuando el formato de un argumento no es el adecuado
IndexOutOfRangeException
NullReferenceException FormatException
5/9/2013
Tratamiento de excepciones
Tratamiento de excepciones
5/9/2013
5/9/2013
DivideByZeroException
static void Main(string[] args) { int a = 5, b = 0, c; try { c = a / b;
Intenta ejecutar una divisin por cero (b = 0)
MENSAJES DE EXCEPCIONES
10
5/9/2013
11
5/9/2013
12
5/9/2013
CONTROL DE EXCEPCIONES
13
5/9/2013
TAREA
- Buscar 2 ejemplos con TRY CATCH que usen diferentes tipos de excepciones.
OverflowException
Por defecto, no se verifica el desborde aritmtico
OverflowException
Dispara una excepcin No se ejecuta la impresin.
MaxValue + 1 es negativo?
-2147483648
14
5/9/2013
15
5/9/2013
TIPOS DE EXCEPCIONES
Excepciones de sistema: Cuando se realiza alguna operacin no vlida se lanza automticamente. Acceso a algn objeto que no existe, divisin por cero Excepciones de programador: Se define una clase que herede de Throwable o de Exception. Excepciones de usuario: Gestiona la excepcin mediante los bloques de cdigo try, catch, finally. Indica que el cdigo producir una excepcin que no se tratar dentro de l y se pasar al mtodo superior utilizando throw.
INSTRUCCION THROW
La instruccin throw se utiliza para sealizar la aparicin de una situacin anmala (excepcin) durante la ejecucin del programa. Se puede utilizar una instruccin throw en el bloque catch para volver a producir la excepcin, la cual ha sido capturada por la instruccin catch. El programador puede disparar una excepcin mediante: throw new Exception(Error: .);
16
5/9/2013
17
5/9/2013
18
5/9/2013
TAREA
Modificar 4 ejemplos anteriores de CLASES, incluyendo en ellos el manejo de errores (TRYCATCH-FINALLY) donde sea necesario. Voluntarios para presentar 1 ejemplo en clase se contar como doble participacin.
19
5/9/2013
class Empleado { // Atributos privados private int numero; private string nombre; private int edad; : : :
20
5/9/2013
21
5/9/2013
22