Blocs Catch multiples
Fait partie de la section Logique & Flux du Journey C# de Coddy. Leçon 25 sur 66.
Plusieurs blocs catch vous permettent de gérer différents types d’exceptions avec du 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 s’exécutera. Ordonnez vos blocs catch des types d’exceptions les plus spécifiques aux plus généraux.
Défi
FacileCréez une méthode nommée DivideNumbers qui prend deux paramètres de type string :
numeratorStr: une string représentant le numeratordenominatorStr: une string représentant le denominator
La méthode doit :
- Essayer de convertir les deux strings en entiers
- Essayer de diviser le numerator par le denominator
- Retourner le result sous forme d'entier
- Gérer FormatException en affichant "Invalid format" et en retournant 0
- Gérer DivideByZeroException en affichant "Cannot divide by zero" et en retournant 0
- Gérer toute autre exception avec un bloc catch général qui affiche "An error occurred" et retourne 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 SafetyEntraînez-vous par vous-même : Compilateur C# en ligne