Classe et propriétés d'exception

La classe Exception est la classe de base dont les exceptions héritent. La plupart des objets exception sont des instances d'une classe dérivée d'Exception, mais vous pouvez lever n'importe quel objet qui dérive de la classe Object en tant qu'exception. Notez que certains langages ne prennent pas en charge la levée et l'interception d'objets ne dérivant pas de la classe Exception. Dans la plupart des cas, il est recommandé de lever et d'intercepter uniquement des objets Exception.

La classe Exception possède plusieurs propriétés qui permettent de mieux comprendre une exception. Il s'agit notamment des propriétés suivantes :

  • La propriété StackTrace.

    Cette propriété contient une trace de la pile qui peut être utilisée pour déterminer l'emplacement où une erreur s'est produite. La trace de la pile comprend le nom du fichier source et le numéro de ligne du programme si les informations de débogage sont disponibles.

  • La propriété InnerException.

    Cette propriété peut servir à créer et à conserver une série d'exceptions pendant la gestion des exceptions. Vous pouvez utiliser cette propriété pour créer une nouvelle exception qui contient des exceptions interceptées précédemment. L'exception d'origine peut être saisie par la deuxième exception dans la propriété InnerException, permettant ainsi au code qui gère la deuxième exception d'examiner les informations supplémentaires.

    Par exemple, prenons le cas d'une méthode qui lit un fichier et met en forme les données. Le code essaie de lire le fichier, mais une FileException est levée. La méthode intercepte FileException et lève une BadFormatException. En ce cas, FileException peut être enregistrée dans la propriété InnerException de BadFormatException.

    Pour améliorer la capacité de l'appelant à déterminer la raison pour laquelle une exception a été levée, il est parfois souhaitable qu'une méthode intercepte une exception levée par le biais d'une routine d'assistance puis lève une exception plus indicative de l'erreur qui s'est produite. Une exception nouvelle et plus significative peut être créée, où la référence d'exception interne peut avoir comme valeur l'exception d'origine. Cette exception plus significative peut ensuite être levée pour l'appelant. Notez que cette fonctionnalité permet de créer une série d'exceptions liées qui se termine par l'exception levée en premier.

  • La propriété Message.

    Cette propriété fournit des détails sur la cause d'une exception. Le Message est dans la langue spécifiée par la propriété Thread.CurrentUICulture du thread qui lève l'exception.

  • La propriété HelpLink.

    Cette propriété peut contenir une URL (ou une URN) vers un fichier d'aide qui fournit des informations extensives sur la cause d'une exception.

  • La propriété Data

    Cette propriété est un IDictionary qui peut conserver des données arbitraires dans des paires clé/valeur.

La plupart des classes qui héritent de la classe Exception n'implémentent pas de membre supplémentaire et ne fournissent pas de fonctionnalité additionnelle ; elles héritent simplement de la classe Exception. Par conséquent, l'information la plus importante concernant une exception se trouve dans la hiérarchie des exceptions, le nom de l'exception et les informations contenues dans l'exception.

Voir aussi

Concepts

Hiérarchie des exceptions

Meilleures pratiques pour la gestion des exceptions

Gestion et levée des exceptions

Autres ressources

Notions de base de la gestion des exceptions