Vous exécutez un programme, et une erreur surgit, bloquant l’application.
Pour un utilisateur, c’est frustrant. Pour un développeur, cela complique le débogage.
La gestion des exceptions en C# est la clé pour créer des applications robustes et fiables.
Démarrez votre voyage en programmation C# et devenez un expert en un rien de temps.
Imaginez cette situation : vous exécutez un programme, et soudain, une erreur surgit, bloquant toute l’application. Pour un utilisateur, c’est frustrant. Pour un développeur, c’est encore pire ! La clé pour éviter ces scénarios ? La gestion des exceptions est une composante essentielle pour construire des applications robustes et fiables.
Qu'est-ce qu'une exception en C# ?
Les exceptions sont des événements inattendus qui perturbent le déroulement normal de l’exécution d’un programme. Elles peuvent être provoquées par :
- Une tentative de division par zéro,
- Un accès à un fichier inexistant,
- Une conversion invalide, comme transformer du texte en nombre.
Prenons un exemple simple pour mieux comprendre :
Gestion des exceptions : entrée utilisateur
Voici un programme simple :
Console.WriteLine("Entrez un nombre à multiplier par 2 : ");
string input = Console.ReadLine();
int number = int.Parse(input);
Console.WriteLine($"{input} multiplié par 2 donne {number * 2}");
Si l’utilisateur entre « 11 », le programme fonctionne :
11 multiplié par 2 donne 22
Mais que se passe-t-il si l’utilisateur entre « dix » ? Le programme plante avec une erreur :
FormatException: Le format de la chaîne d’entrée est incorrect.
Pourquoi ? Parce que int.Parse s’attend à recevoir un nombre, mais le texte « dix » ne peut pas être converti.
Solution : try catch en C#
Pour éviter les plantages, nous utilisons trois blocs fondamentaux en C# pour gérer les exceptions :
- try :contient le code qui peut générer une exception.
- catch :capte l’exception et permet de la traiter.
- finally(optionnel) :exécute du code, qu’il y ait une exception ou non.
Voici le programme corrigé :
try
{
Console.WriteLine("Entrez un nombre à multiplier par 2 : ");
string input = Console.ReadLine();
int number = int.Parse(input);
Console.WriteLine($"{input} multiplié par 2 donne {number * 2}");
}
catch (FormatException)
{
Console.WriteLine("Vous devez entrer un nombre entier.");
}
finally
{
Console.WriteLine("Fin de l'exécution.");
}
Résultat:
Ce que le programme fait maintenant :
Si l’utilisateur entre « 11 », tout fonctionne comme avant.
Si l’utilisateur entre « dix », le programme affiche :
Vous devez entrer un nombre entier.
Fin de l’exécution.
Traitement des exceptions spécifiques C#
Vous pouvez capturer différents types d’exceptions pour des cas spécifiques. Par exemple :
Gestion des divisions par zéro
try
{
int a = 10;
int b = 0;
Console.WriteLine(a / b);
}
catch (DivideByZeroException)
{
Console.WriteLine("Vous ne pouvez pas diviser par zéro.");
}
Résultat:
Ajout d'un message d'erreur générique
Pour obtenir plus de détails sur l’erreur, vous pouvez utiliser la propriété Message de l’exception :
catch (Exception ex)
{
Console.WriteLine($"Erreur : {ex.Message}");
}
Résultat:
Pourquoi utiliser le bloc finally ?
Le bloc finally est utile pour exécuter des tâches obligatoires, comme :
- Fermer un fichier,
-
Libérer des ressources,
même si une exception survient.
Exemple :
try
{
// Code susceptible de lever une exception
}
finally
{
Console.WriteLine("Ce message s'affichera toujours.");
}
FormatException et DivideByZeroException
Conclusion sur la gestion des exceptions
La gestion des exceptions est un outil puissant qui améliore la fiabilité et la robustesse des programmes. Qu’il s’agisse de simples conversions ou de scénarios complexes comme l’accès à des ressources externes, maîtriser les blocs try , catch et finally est essentiel pour tout développeur.
Maintenant, à vous de jouer ! Intégrez cette pratique dans vos programmes et dites adieu aux plantages imprévus.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Qu'est-ce qu'une exception en programmation ?
Comment gérer une erreur de format en C# ?
Pourquoi utiliser le bloc finally en C# ?
Comment gérer une division par zéro en C# ?
Quels sont les avantages de gérer les exceptions ?
Conclusion
La gestion des exceptions est cruciale pour développer des applications robustes en C#. Comment allez-vous intégrer cette pratique dans vos prochains projets ?