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 de base :
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 = 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 sera exécuté. Ordonnez vos blocs catch du type d'exception le plus spécifique au plus général.
Défi
FacileCréez une méthode nommée DivideNumbers qui prend deux paramètres de type chaîne :
numeratorStr: une chaîne représentant le numérateurdenominatorStr: une chaîne représentant le dénominateur
La méthode doit :
- Essayer de parser les deux chaînes en entiers
- Essayer de diviser le numérateur par le dénominateur
- Retourner le résultat sous forme d'entier
- Gérer
FormatExceptionen affichant "Invalid format" et en retournant 0 - Gérer
DivideByZeroExceptionen affichant "Cannot divide by zero" et en retournant 0 - Gérer toutes les autres exceptions avec un bloc catch général qui affiche "An error occurred" et en retournant 0
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);
}
}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
1Tableaux multidimensionnels
Bases des tableaux 2DDéclaration et initialisation en 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DTableaux irréguliersOpérations matricielles courantesRécapitulatif - Multidimensionnel4Techniques de contrôle de flux
Retours anticipésClauses de gardeInstructions de saut (goto)Break et ContinueAplatir les conditionnelles imbriquées2Prise de décision avancée
Conditions multiplesLogique booléenne complexeComparaison If vs SwitchInstructions Switch imbriquéesRécapitulatif - Décisions avancées5Gestion des exceptions
Bases du Try-CatchTypes d'exceptionsBlocs Catch multiplesManipulation de fichiersLe bloc FinallyUsing vs Try-FinallyExceptions personnaliséesRécapitulatif - Gestion des erreurs3Améliorations des boucles
Performance des bouclesItération de structures complexesChaque type de boucleRefactorisation des bouclesRécapitulatif - Boucles optimisées6Gestion des valeurs nulles
Les bases des références nullesTypes valeur nullablesPatterns de vérification de nullitéProgrammation défensiveRécapitulatif - Null Safety