Sobes.tech
Junior

Y a-t-il plusieurs blocs catch en C# pour gérer les exceptions?

sobes.tech IA

Réponse de l'IA

Oui, il peut y avoir plusieurs blocs catch. Cela permet de traiter différents types d'exceptions de manière distincte.

Lorsqu'une exception se produit, le CLR vérifie séquentiellement les blocs catch de haut en bas, en commençant par le premier. Le premier bloc catch dont le type d'exception correspond au type de l'exception levée ou est sa classe de base est exécuté.

try
{
    // Code pouvant lancer une exception
}
catch (ArgumentNullException ex)
{
    // Traitement de l'exception ArgumentNullException
}
catch (IndexOutOfRangeException ex)
{
    // Traitement de l'exception IndexOutOfRangeException
}
catch (Exception ex)
{
    // Traitement de toutes les autres exceptions (classe de base Exception)
    // Ce bloc est généralement placé en dernier
}
finally
{
    // Code qui sera toujours exécuté, indépendamment du fait qu'une exception ait été levée ou non
}

Il est important de placer les blocs catch des types d'exception plus spécifiques en premier, puis ceux des types plus généraux. Le bloc catch (Exception ex) doit être placé en dernier, car il attrape toutes les exceptions.