|
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. |
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 . . .
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 |
|
|
||