Menu
Coddy logo textTech

Exceptions personnalisées

Fait partie de la section Logique & Flux du Journey C# de Coddy. Leçon 29 sur 66.

Les exceptions personnalisées vous permettent de créer des types d’exceptions spécifiques pour les scénarios d’erreur propres à votre application.

Pour créer une exception personnalisée, définissez une classe qui hérite de Exception. L’héritage signifie que votre nouvelle classe acquiert automatiquement tout le comportement de la classe parente, dans ce cas Exception, tout en vous permettant d’ajouter ou de personnaliser des fonctionnalités. La syntaxe class MyException : Exception signifie MyException extends Exception.

public class InvalidAgeException : Exception
{
    public InvalidAgeException() : base("Age is not valid.")
    {
    }
    
    public InvalidAgeException(string message) : base(message)
    {
    }
}

: Exception : hérite de la classe intégrée Exception.
: base(...) : appelle le constructeur parent Exception pour définir le message d’erreur.
Le premier constructeur fournit un message par défaut lorsqu’aucun message n’est fourni.
Le second constructeur accepte un message personnalisé afin que les appelants puissent décrire l’erreur en détail.

Vous pouvez maintenant lever votre exception personnalisée lorsque cela est nécessaire :

int age = -5;
if (age < 0)
{
    throw new InvalidAgeException("Age cannot be negative.");
}

Lorsque ce code s’exécute avec un âge négatif, il lèvera votre exception personnalisée avec le message « Age cannot be negative. »

Remarque : Dans les exercices de cette leçon, les fonctions de validation renvoient true lorsque l’entrée est valide et lèvent une exception personnalisée lorsqu’elle ne l’est pas. Comme une exception non gérée arrête immédiatement l’exécution, les cas de test doivent uniquement vérifier le chemin de retour true : l’exception elle-même est le résultat observable pour les entrées invalides.

challenge icon

Défi

Moyen

Créez une classe d’exception personnalisée nommée InvalidTemperatureException qui hérite de Exception. Elle doit comporter :

  1. Un constructeur par défaut qui définit le message "Temperature is not valid."
  2. Un constructeur qui accepte un message personnalisé.

Implémentez ensuite une méthode nommée checkTemperature qui :

  • Prend un paramètre entier représentant une température en degrés Celsius
  • Lève une InvalidTemperatureException avec le message "Temperature below absolute zero!" si la température est inférieure à -273
  • Retourne true si la température est valide

Essayez vous-même

using System;

class CheckTemperature
{
    // Créez votre classe d'exception personnalisée ici
    
    public static bool checkTemperature(int celsius)
    {
        // Écrivez votre code ici
    }
    
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur C# en ligne