Bases du Try-Catch
Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 23 sur 66.
La gestion des exceptions en C# permet de gérer les erreurs d'exécution de manière élégante. Le bloc try-catch est la manière fondamentale de gérer les exceptions.
Créez un bloc try-catch de base :
try
{
// Code qui pourrait lever une exception (erreur)
int result = 10 / 0; // Ceci lèvera une DivideByZeroException
}
catch (Exception ex)
{
// Gérer l'exception
Console.WriteLine("An error occurred: " + ex.Message);
}Après avoir exécuté le code ci-dessus, au lieu que votre programme plante, vous verrez :
An error occurred: Attempted to divide by zero.Vous pouvez continuer à exécuter du code après le bloc catch :
try
{
int result = 10 / 0;
Console.WriteLine("This won't execute");
}
catch (Exception ex)
{
Console.WriteLine("Caught an error: " + ex.Message);
}
Console.WriteLine("Program continues running");Défi
FacileCréez une méthode nommée DivideNumbers qui prend deux entiers en paramètres :
numerator- Le numérateurdenominator- Le dénominateur
La méthode doit :
- Essayer de diviser le numérateur par le dénominateur
- Retourner le résultat si réussi
- Intercepter toute DivideByZeroException et afficher exactement : "Cannot divide by zero!"
- Retourner 0 si une exception se produit
Aide-mémoire
La gestion des exceptions en C# utilise des blocs try-catch pour gérer les erreurs d'exécution de manière élégante :
try
{
// Code that might throw an exception
int result = 10 / 0;
}
catch (Exception ex)
{
// Handle the exception
Console.WriteLine("An error occurred: " + ex.Message);
}L'exécution du code se poursuit après le bloc catch, empêchant le programme de planter. Vous pouvez intercepter des types d'exceptions spécifiques comme DivideByZeroException pour une gestion d'erreurs plus ciblée.
Essayez vous-même
using System;
class Program {
public static int DivideNumbers(int numerator, int denominator) {
// Écrivez votre code ici
}
static void Main(string[] args) {
int numerator = int.Parse(Console.ReadLine());
int denominator = int.Parse(Console.ReadLine());
int result = DivideNumbers(numerator, denominator);
Console.WriteLine(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