Les exceptions

Documentation officiel

Les exceptions sont des erreurs qui surviennent lors de l'exécution d'un programme.

Quand on ne souhaite pas traiter une exception, on peut la laisser remonter jusqu'à la méthode appelante.

On utilise pour ca le mot clé throw.

Instruction throw

Pour lancer une exception on utilise le mot clé throw de cette manière.

throw new Exception("Erreur");

On notera l'utilisation de la classe Exception qui prend en paramètre un message d'erreur.

Instruction try-catch

Pour empecher une exception de remonter jusqu'à la méthode appelante, on utilise le bloc try-catch.

De cette manière on peut traiter l'exception et éviter que le programme ne s'arrête.

try
{
    throw new Exception("Erreur");
}
catch (Exception e)
{
    Console.WriteLine(e.Message);
}

Différents types d'exceptions

Il existe plusieurs types d'exceptions.

Chaque type d'exception hérite de la classe Exception.

On peux créer nos propres exceptions en héritant de la classe Exception.

class MaPropreException : Exception
{
    public MaPropreException(string message) : base(message) { }
}

Traiter plusieurs exceptions

On peut les traiter de manière spécifique.

Ici on traite l'exception MaPropreException avant l'exception générique Exception.

Si l'exception envoyé par codeQuiPeutLancerUneException est de type MaPropreException alors le premier bloc catch sera exécuté.

Sinon le deuxième bloc catch sera exécuté.

try
{
    codeQuiPeutLancerUneException();
}
catch (MaPropreException e)
{
    Console.WriteLine($"Erreur spécifique : ${e.Message}");
}
catch (Exception e)
{
    Console.WriteLine(e.Message);
}