Junior
¿Puede haber varios bloques catch en C# para manejar excepciones?
sobes.tech AI
Respuesta de la IA
Sí, puede haber varios bloques catch. Esto permite manejar diferentes tipos de excepciones de manera distinta.
Cuando ocurre una excepción, CLR verifica secuencialmente los bloques catch de arriba hacia abajo, comenzando por el primero. Se ejecuta el primer bloque catch cuyo tipo de excepción coincide con el tipo de la excepción lanzada o es su clase base.
try
{
// Código que puede lanzar una excepción
}
catch (ArgumentNullException ex)
{
// Manejo de la excepción ArgumentNullException
}
catch (IndexOutOfRangeException ex)
{
// Manejo de la excepción IndexOutOfRangeException
}
catch (Exception ex)
{
// Manejo de todas las demás excepciones (clase base Exception)
// Este bloque generalmente se coloca al final
}
finally
{
// Código que se ejecutará siempre, independientemente de si se lanzó una excepción
}
Es importante colocar los bloques catch desde los tipos de excepción más específicos hasta los menos específicos (clases base). El bloque catch (Exception ex) debe ir al final, ya que captura todas las excepciones.