Menu
Coddy logo textTech

Blocs Catch multiples

Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 25 sur 66.

Les blocs catch multiples vous permettent de gérer différents types d'exceptions avec un code spécifique pour chaque type d'exception.

Commencez par un bloc try basique :

try
{
    int number = int.Parse("abc");
}

Ajoutez un bloc catch pour une exception spécifique :

try
{
    int number = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}

Vous pouvez ajouter plusieurs blocs catch pour gérer différentes exceptions :

try
{
    int number = int.Parse("abc");
    int result = a10 / number;
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}

Le premier bloc catch correspondant s'exécutera. Ordonnez vos blocs catch des types d'exception les plus spécifiques aux plus généraux.

challenge icon

Défi

Facile

Créez une méthode nommée DivideNumbers qui prend deux paramètres string :

  • numeratorStr : une chaîne représentant le numérateur
  • denominatorStr : une chaîne représentant le dénominateur

La méthode doit :

  1. Tenter d'analyser les deux chaînes en entiers
  2. Tenter de diviser le numérateur par le dénominateur
  3. Retourner le résultat sous forme d'entier
  4. Gérer FormatException en affichant "Invalid format" et en retournant 0
  5. Gérer DivideByZeroException en affichant "Cannot divide by zero" et en retournant 0
  6. Gérer toute autre exception avec un bloc catch général qui affiche "An error occurred" et retourne 0

Aide-mémoire

Les blocs catch multiples vous permettent de gérer différents types d'exceptions avec du code spécifique pour chaque type d'exception.

try-catch de base avec exception spécifique :

try
{
    int number = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}

Blocs catch multiples pour différentes exceptions :

try
{
    int number = int.Parse("abc");
    int result = 10 / number;
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}

Le premier bloc catch correspondant s'exécutera. Classez les blocs catch du plus spécifique au plus général des types d'exceptions.

Essayez vous-même

using System;

public class Program
{
    public static int DivideNumbers(string numeratorStr, string denominatorStr)
    {
        // Écrivez votre code ici
    }
    
    public static void Main(string[] args)
    {
        string numeratorStr = Console.ReadLine();
        string denominatorStr = Console.ReadLine();
        
        int result = DivideNumbers(numeratorStr, denominatorStr);
        Console.WriteLine("Result: " + result);
    }
}
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