Вы находитесь на странице: 1из 3

Manejo de Excepciones en C#

Las caractersticas de control de excepciones del lenguaje C# proporcionan una manera de afrontar
cualquier situacin inesperada o excepcional que se presente mientras se ejecuta un programa. El
control de excepciones utiliza las palabras clave try, catch y finally para intentar realizar acciones
que podran plantear problemas, controlar errores cuando considere que sea razonable y limpiar los
recursos despus. Pueden generar excepciones Common Language Runtime (CLR), .NET Framework,
las bibliotecas de otros fabricantes o el cdigo de aplicacin. Las excepciones se crean mediante la
palabra clave throw.

En muchos casos, puede que una excepcin no la produzca un mtodo que el cdigo ha llamado
directamente, sino otro mtodo que aparece ms adelante en la pila de llamadas. Cuando esto
sucede, CLR desenredar la pila a fin de buscar un mtodo con un bloque catch para el tipo de
excepcin especfico y ejecutar el primer bloque catch de este tipo que encuentre. Si no encuentra
ningn bloque catch adecuado en la pila de llamadas, finalizar el proceso y mostrar un mensaje al
usuario. En este ejemplo, el mtodo hace una prueba para realizar una divisin por cero y detecta el
error. Sin el control de excepciones, este programa finalizara con un error DivideByZeroException
no controlado.

class ExceptionTest
{
static double SafeDivision(double x, double y)
{
if (y == 0)
throw new System.DivideByZeroException();
return x / y;
}
static void Main()
{
// Input for test purposes. Change the values to see
// exception handling behavior.
double a = 98, b = 0;
double result = 0;

try
{
result = SafeDivision(a, b);
Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
}
catch (DivideByZeroException e)
{
Console.WriteLine("Attempted divide by zero.");
}
}
}


Informacio n General sobre
excepciones.
Las excepciones tienen las propiedades siguientes:

Las excepciones son tipos que se derivan en ltima instancia de System.Exception.

Utilice un bloque try alrededor de las instrucciones que puedan generar excepciones.

Cuando se produce una excepcin dentro del bloque try, el flujo de control salta al primer
controlador de excepciones asociado que se encuentre en cualquier parte de la pila de
llamadas. En C#, la palabra clave catch se utiliza para definir un controlador de excepciones.

Si no hay un controlador de excepciones para una excepcin determinada, el programa deja
de ejecutarse y presenta un mensaje de error.

No detecte una excepcin a menos que pueda controlarla y dejar la aplicacin con un
estado conocido. Si detecta una excepcin System.Exception, vuelva a producirla mediante
la palabra clave throw al final del bloque catch.

Si un bloque catch define una variable de excepcin, puede utilizar dicho bloque para
obtener ms informacin sobre el tipo de excepcin que se ha producido.

Un programa que utiliza la palabra clave throw puede generar explcitamente excepciones.
Los objetos de excepcin contienen informacin detallada sobre el error, tal como el estado
de la pila de llamadas y una descripcin de texto del error.

El cdigo de un bloque finally se ejecuta aunque se produzca una excepcin. Use un
bloque finally para liberar recursos, por ejemplo, para cerrar las secuencias o archivos que
se abrieron en el bloque try.

Las excepciones administradas de .NET Framework se implementan sobre el mecanismo de
control de excepciones estructurado de Win32.


Conclusio n
La plataforma .NET nos ofrece una estructura para el manejo de excepciones con el fin de
contener cualquier tipo de problema que se pueda presentar en tiempo de ejecucin de un
programa, sin interrumpir el funcionamiento del mismo. Esto nos da ciertas ventajas a la hora de
intentar algoritmos, mtodos o funciones dentro de un programa que no sabemos al 100% cual
ser su comportamiento, error o procedimiento inesperado.


Bibliografa
http://msdn.microsoft.com/es-mx/library/ms173160(v=vs.100).aspx

Вам также может понравиться