Gestion des exceptions en C#
Le traitement des exceptions en C# est un processus permettant de gérer les erreurs d’exécution. Nous gérons les exceptions afin que le flux normal de l’application puisse être maintenu même après les erreurs d’exécution.
En C#, une exception est un événement ou un objet lancé lors de l’exécution. Toutes les exceptions proviennent de la classe System.Exception. C’est une erreur d’exécution qui peut être traitée. Si nous ne gérons pas l’exception, il affiche le message d’erreur et termine le programme.
En C#, nous utilisons 4 mots-clés pour gérer les exceptions:
- try
- catch
- finally
- throw
Exemple Try/Catch/Finally:
int n1 = 1; int n2 = 0; try { d = n1 / n2; } catch (DivideByZeroException e) { Console.WriteLine("Exception: {0}", e); } finally { Console.WriteLine("Résultat: {0}", d); }
La sortie :
Exception: System.DivideByZeroException: Attempted to divide by zero.
Exemple Throw:
using System; public class WayToLearnX { public static void Main() { string str = "WayToLea"; if(str.Length >= 10){ Console.WriteLine(str[10]); }else{ throw new Exception("L'index se trouve en dehors des limites du tableau"); } } }
La sortie :
Run-time exception (line 12): L'index se trouve en dehors des limites du tableau Stack Trace: [System.Exception: L'index se trouve en dehors des limites du tableau] at WayToLearnX.Main() :line 12
Classes d’exceptions en C#
Toutes les classes d’exceptions dans C# hérite de la classe System.Exception. Voici la liste des exceptions les plus utilisées en C#.
System.IO.IOException | Gère les erreurs d’entrée-sortie. |
System.DivideByZeroException | Gère l’erreur générée en divisant un nombre par zéro. |
System.NullReferenceException | Gère l’erreur générée en référençant un objet null. |
System.InvalidCastException | Gère l’erreur générée par une conversion de type non valide. |
System.FieldAccessException | gère l’erreur générée par un accès invalide à un attribut privé ou protégé. |