Cours en Devlopement Informatique

  • programation orienté objet C#

Les exceptions C#



Une exception est un signal qui se déclenche en cas de problème. Les exceptions permettent de gérer les cas d'erreur et de rétablir une situation stable (ce qui veut dire, dans certains cas, quitter l'application proprement). La gestion des exceptions se décompose en deux phases :

    • La levée d'exceptions,
    • Le traitement d'exceptions.

En C# Toutes les exceptions dérivent de la classe Exception.

Exemples des exceptions : affecter une valeur int à un string, un nombre divisé par zéro, ou entrée inattendue (un utilisateur sélectionne un fichier inexistant).

Bloc Try ... Catch … Finally

Lorsque nous voulons exécuter un code susceptible d'être source d'erreurs, on utilise le bloc try. Ensuite nous pouvons intercepter l'exception avec un (ou plusieurs) bloc(s) catch. Enfin, nous pouvons utiliser le bloc finally pour effectuer systématiquement une opération après la tentative d'exécution.

Exemple :

try
{
Console.Write("Entrez un nombre : "); int n = int.Parse(Console.ReadLine());
Console.WriteLine( "100/nombre = {0}", 100/n);
}
catch (DivideByZeroException dbzEx)
{
Console.WriteLine("Erreur : division par zéro.");
}
catch (Exception ex)
{
Console.WriteLine("Une autre exception a eu lieu : {0}.", ex.Message);
}
finally
{
Console.WriteLine("Quel que soit le résultat, ceci est affiché.");
}
Créer une classe d'exception

 

Lancer une exception signale une erreur particulière. Si aucune classe d'exception ne convient ou n'est suffisamment précise, ou si l'exception doit comporter des informations supplémentaires, il est possible de créer une nouvelle classe d'exception.

Pour cela, il faut dériver la classe Exception ou l'une de ses sous-classes. Par convention, toutes ces sous- classes ont un nom se terminant par Exception.

Exemple :

public class MaException : Exception
{
public MyException() : base("Message par défaut de l'exception.")
{
}
public MyException(string message) : base(message)
{
}
}

Ensuite, cette classe peut être utilisée comme n'importe quelle autre classe d'exception. Donc dans le cas d'erreur dans une méthode d'un programme (arguments invalides, ...), il est possible de lancer une notre propre exception en utilisant le mot clé throw.

 

// Méthode 1
if ( arg==null )
throw new MyException();

// Méthode 2
if ( arg==null )
throw new MyException("Msg");

 

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.