La fonction de gestion des exceptions du langage C# vous aide à gérer toute situation inattendue ou inhabituelle survenant pendant l’exécution de votre programme. La gestion des exceptions utilise les mots-clés try, catch et finally pour essayer certaines opérations afin de gérer les échecs, et bien que ces opérations puissent échouer, vous pouvez essayer si vous êtes sûr de devoir le faire et souhaitez nettoyer les ressources ensuite. Common Language Runtime (CLR), . NET Framework ou tout code de bibliothèque ou application tierce peut générer des exceptions. Les exceptions sont créées en utilisant le mot-clé throw. Dans de nombreux cas, les exceptions ne peuvent pas être soulevées par une méthode appelée directement par le code, mais par une autre méthode plus bas dans la pile d’appels. Dans ce cas, le CLR développe la pile pour voir s’il existe une méthode contenant un bloc de capture pour ce type d’exception particulier, et s’il trouve une telle méthode, il exécute le premier bloc de capture trouvé. Si aucun bloc de capture approprié n’est trouvé nulle part dans la pile d’appels, le processus est terminé et un message est affiché à l’utilisateur. Dans cet exemple, une méthode est utilisée pour détecter s’il existe une situation où elle est divisée par zéro ; S’il y en a une, l’erreur est détectée. S’il n’y a pas de gestion des exceptions, ce programme se terminera et produira une erreur « DivideByZeroException Not Handled ».- class ExceptionTest
- {
- static double SafeDivision(double x, double y)
- {
- if (y == 0)
- throw new System.DivideByZeroException();
- return x / y;
- }
- static void Main()
- {
- // Input for test purposes. Change the values to see
- // exception handling behavior.
- double a = 98, b = 0;
- double result = 0;
- try
- {
- result = SafeDivision(a, b);
- Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
- }
- catch (DivideByZeroException e)
- {
- Console.WriteLine("Attempted divide by zero.");
- }
- }
- }
Code de copie
|