Page d'Accueil

Exceptions dans .NET Framework

 

La classe Exception

Dans l'erreur traditionnelle orientée utilisant des langages tels que C/C++, Objet Pascal, ou de visual basic, vous pourriez créer n'importe quelle exception de votre choix, y compris numérique ou chaîne de caractères. Pour personnaliser la manipulation d'exception, vous pourriez également créer votre propre classe. La plupart des bibliothèques telles que les VCL de Borland et les MFC de Microsoft sont également livrés avec leurs propres classes pour manipuler les exceptions. Même la bibliothèque Win32 fournit son type de mécanisme pour faire face aux erreurs. Pour soutenir la manipulation d'exception, .NET Framework fournit une classe spéciale appelée Exception. Une fois que le compilateur rencontre une erreur, la classe Exception vous permet d'identifier le type d'erreur et prendre une mesure appropriée.

Normalement, Exception sert la plupart du temps de classe générale des exceptions. Prévoyant divers types de problèmes qui peuvent se produire dans un programme, Microsoft a dérivé diverses classes Exception à rendent cette question plus convivial. En conséquence, presque n'importe quel type d'exception que vous pouvez avoir déjà rencontrer a une classe créée pour la traiter. Par conséquent, quand votre programme fait face à une exception, vous pouvez facilement identifier le type d'erreur. Il y a tant de classes Exception que nous ne pouvons pas tous les étudier ou les passer tous en revue. La solution que nous utiliserons est de présenter ou passer en revue une classe quand nous rencontrons son type d'erreur.

Message de l'exception

Dans la manipulation de l'exception, des erreurs sont traitées dans la section catch. Pour ce faire, catch s'utilise comme si c'étaient une méthode. Ceci signifie que, du côté droit catch, ouvrez une parenthèse, déclarez une variable de type exception que vous voulez traiter. Par défaut, une exception est la première du type Exception. Basé sur ceci, une formule typique pour mettre en application la manipulation de l'exception est :

try
{
    // Process the normal flow of the program here
}
catch(Exception e)
{
    // Deal with the exception here
}

Quand une exception se produit dans la section try, la compilation du code est transférée à la section catch. Si vous déclarez l'exception comme type Exception, cette classe identifiera l'erreur. Une des propriétés de la classe Exception s'appelle Message. Cette propriété contient une chaîne de caractères qui décrit le type d'erreur qui s'est produite. Vous pouvez alors accéder à cette propriété Exception.Message pour afficher un message d'erreur si vous voulez. Voici un exemple :

using System;

class Program
{
    static int Main()
    {
        double side;

        Console.WriteLine("Square Processing");
        try
        {
            Console.Write("Enter Side: ");
            side = double.Parse(Console.ReadLine());

            Console.WriteLine("\nSquare Characteristics");
            Console.WriteLine("Side:      {0}", side);
            Console.WriteLine("Perimeter: {0}", side * 4);
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        return 0;
    }
}

Voici un exemple d'exécution du programme :

Square Processing
Enter Side: Wer24
Input string was not in a correct format.
Press any key to continue . . .

Messages d'erreur personnalisés

Comme vous pouvez voir, une des forces de la propriété Exception.Message est qu'elle vous donne une bonne indication du type de problème qui s'est produit. Parfois, le message fourni par la classe Exception peut ne pas sembler assez explicite. En fait, vous ne pouvez pas vouloir l'afficher à l'utilisateur puisque, comme dans ce cas, l'utilisateur peut ne pas comprendre ce que signifie l'expression « format correct » dans ce contexte, et pourquoi elle est utilisée. Comme alternative, vous pouvez créer votre propre message et l'afficher à l'utilisateur. Voici un exemple :

using System;

class Program
{
    static int Main()
    {
        double side;

        Console.WriteLine("Square Processing");
        try
        {
            Console.Write("Enter Side: ");
            side = double.Parse(Console.ReadLine());

            Console.WriteLine("\nSquare Characteristics");
            Console.WriteLine("Side:      {0}", side);
            Console.WriteLine("Perimeter: {0}", side * 4);
        }
        catch(Exception ex)
        {
            Console.WriteLine("The operation could not be carried because " +
                              "the number you typed is not valid");
        }

        return 0;
    }
}

Voici un exemple d'exécution du programme :

Square Processing
Enter Side: 24.Gh
The operation could not be carried because the number you typed is not valid
Press any key to continue . . .

Vous pouvez également combiner le message Exception.Message et votre propre message :

using System;

class Program
{
    static int Main()
    {
        double side;

        Console.WriteLine("Square Processing");
        try
        {
            Console.Write("Enter Side: ");
            side = double.Parse(Console.ReadLine());

            Console.WriteLine("\nSquare Characteristics");
            Console.WriteLine("Side:      {0}", side);
            Console.WriteLine("Perimeter: {0}", side * 4);
        }
        catch(Exception ex)
        {
            Console.Write(ex.Message);
            Console.WriteLine(
		" Consequently, The operation could not be carried because " +
                              "the number you typed is not valid");
        }

        return 0;
    }
}

Voici un exemple d'exécution du programme :

Square Processing
Enter Side: 25.KL48
Input string was not in a correct format.. Consequently, The operation could not
 be carried because the number you typed is not valid
Press any key to continue . . .
  

Précédent Copyright © 2007, Yevol Suivant