Las excepciones en C# son mecanismos que permiten manejar errores y situaciones inesperadas durante la ejecución de un programa. Es crucial manejarlas adecuadamente para escribir código robusto y evitar la terminación abrupta del programa. A continuación, te mostraré cómo trabajar con excepciones en C#.
Lanzamiento de Excepciones
Para lanzar una excepción en C#, utilizamos la palabra clave `throw`. Podemos lanzar excepciones predefinidas del tipo `Exception` o crear nuestras propias clases de excepción.
throw new Exception("Este es un mensaje de excepción");
Captura de Excepciones
Para capturar una excepción y manejarla, utilizamos bloques `try-catch`. Dentro del bloque `try`, colocamos el código que puede lanzar una excepción. Dentro del bloque `catch`, manejamos la excepción.
try
{
// Código que puede lanzar una excepción
}
catch (TipoDeExcepcion ex)
{
// Manejo de la excepción
Console.WriteLine("Se ha producido una excepción: " + ex.Message);
}
finally
{
// Código que se ejecuta siempre, opcional
}
Tipos de Excepciones Comunes
Algunos tipos de excepciones comunes en C# son:
`System.Exception`: Es la clase base para todas las excepciones en C#.
`System.ArgumentException`: Se lanza cuando un argumento no es válido.
`System.NullReferenceException`: Se lanza cuando intentas acceder a un objeto que es `null`.
Propagación de Excepciones
Si no manejamos una excepción en un método, la excepción se propaga hacia el llamador. Esto continúa hasta que se maneja la excepción o el programa se detiene si no se maneja.
Personalización de Excepciones
Podemos crear nuestras propias clases de excepción personalizadas heredando de `System.Exception` o cualquier otra clase de excepción existente.
class MiExcepcion : Exception
{
public MiExcepcion(string mensaje) : base(mensaje)
{
}
}
Bloque `finally`
El bloque `finally` se ejecuta siempre, ya sea que se produzca una excepción o no. Es útil para liberar recursos, como cerrar conexiones a bases de datos.
try
{
// Código que puede lanzar una excepción
}
finally
{
// Código que se ejecuta siempre
}
El manejo adecuado de excepciones contribuye a escribir código más robusto y confiable en C#.