excepciones
Unidad 5.- Excepciones
Autor:
Dr. Ramón Roque Hernández
http://ramonroque.com/Materias/pooTec.htm
ramonroque@yahoo.com
Colaboradores:
Ing. Gloria Ma. Rodríguez Morales
grodriguez@itnuevolaredo.edu.mx
Ing. Bruno López Takeyas, M.C.
www.itnuevolaredo.edu.mx/takeyas
takeyas@itnuevolaredo.edu.mx
1
Introducción al manejo de excepciones
•Excepción
•Manejador de excepción•Levantamiento de una
excepción
1
5/9/2013
Esperando lo inesperado !!
Ocurrencia de
sucesos que se
consideran
excepcionales.
Cómo manejar
situaciones anómalas
Pueden ocurrir
durante la ejecución
de un programa
Excepciones
Definición
Tipos de excepciones
Propagación de excepciones
Gestión de excepciones
2
5/9/2013
DEFINICIÓN DE EXCEPCIÓN:
Una excepción es unevento que
ocurre durante la ejecución de
un programa y que interrumpe
el flujo normal de ejecución
Un mecanismo de manejo de
excepciones debe cumplir una
serie de requerimientos
generales
Debe ser simple de usar y entender.
Separación del código para el manejo de las
excepciones del código normal
Tratamiento uniforme de las excepciones
Debe permitir que las acciones de
recuperaciónsean programadas.
3
5/9/2013
Se levanta la excepción:
• Detener la ejecución normal del
programa.
• Llamar a un subprograma
(manejador de excepciones) que
debe ejecutar acciones
especiales.
Conceptos fundamentales
MANEJADOR DE
EXCEPCIONES
LEVANTAR
EXCEPCIÓN
Subprograma
encargado de llevar
a cabo un conjunto
de instrucciones
que se ejecutan
después de unaexcepción.
Acción de advertir
una excepción en
tiempo de
ejecución.
4
5/9/2013
Tipos de excepciones:
1. Manejo en lenguajes que no contenían
implícito el manejo de excepciones
2. Manejo en lenguajes que sí lo contienen y
permiten tener:
Excepciones predefinidas por el lenguaje
(Implícitas)
Excepciones definidas por el programador
(Explícitas)
Definición
C# envía unaexcepción cuando ocurre un error en el
programa y detiene su ejecución.
Si deseamos que nuestro programa siga ejecutándose después
del error usamos :
try para poner en alerta al programa a cerca del código
que puede lanzar una excepción.
catch para capturar y manejar cada excepción que se
lance.
finally código que se ejecutará haya o no excepciones.
5
5/9/2013
Definición
try
{
[Bloquede código 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
6
5/9/2013
Algunas excepciones
Clase de excepción
DivideByZeroException
IndexOutOfRangeException
NullReferenceException
FormatException
Significado
Se producecuando intenta dividir
un valor entero o decimal entre
cero
Un arreglo fue accedido con un
índice ilegal (fuera de los límites
permitidos)
Se intentó utilizar null donde se
requería un objeto
Se produce cuando el formato de
un argumento no es el adecuado
¿Qué hacer después de manejar la
excepción?
Cuando el manejador termina se
pueden hacer dos cosas:
Reanudar la ejecución del
bloqueTerminar la ejecución del
bloque y devolver el control al
punto de invocación.
7
5/9/2013
Tratamiento de excepciones
Tratamiento de excepciones
8
5/9/2013
EJEMPLO SIN MANEJO DE
EXCEPCIONES
static void Main(string[] args)
{
int a = 5, b = 0, c;
Intenta ejecutar una
división por cero
(b = 0)
c = a / b;
Console.Write("c=" + a+"/"+b+"="+c);
Console.ReadKey();
}EJEMPLO SIN MANEJO DE
EXCEPCIONES
9
5/9/2013
DivideByZeroException
static void Main(string[] args)
{
int a = 5, b = 0, c;
try
{
c = a / b;
Intenta ejecutar una
división por cero
(b = 0)
Captura la excepción
DivideByZeroException
}
catch (DivideByZeroException x)
{
Console.WriteLine(x.Message);
Console.ReadKey();
Propiedad con el
return;
mensaje de la
}...
Regístrate para leer el documento completo.