Classe et propriétés d’exception
La classe Exception est la classe de base dont héritent les exceptions. Par exemple, la hiérarchie de classes InvalidCastException se présente comme suit :
Object
Exception
SystemException
InvalidCastException
La classe Exception a les propriétés suivantes qui vous permettront de mieux comprendre une exception.
Nom de la propriété | Description |
---|---|
Data | IDictionary qui contient des données arbitraires dans des paires clé-valeur. |
HelpLink | Peut contenir une URL (ou URN) vers un fichier d’aide qui fournit des informations détaillées sur la cause d’une exception. |
InnerException | Cette propriété peut être utilisée pour créer et conserver une série d’exceptions pendant la gestion des exceptions. Vous pouvez l’utiliser pour créer une exception qui contient des exceptions interceptées précédemment. L’exception d’origine peut être capturée par la deuxième exception dans la propriété InnerException, ce qui permet au code qui gère la deuxième exception d’examiner les informations supplémentaires. Par exemple, supposons que vous disposez d’une méthode qui reçoit un argument avec une mise en forme incorrecte. Le code essaie de lire l’argument, mais une exception est levée. La méthode intercepte l’exception et lève une exception FormatException. Pour améliorer la capacité de l’appelant à déterminer la raison pour laquelle une exception est levée, il est parfois souhaitable qu’une méthode intercepte une exception levée par une routine d’assistance, puis qu’elle lève une exception plus évocatrice de l’erreur qui s’est produite. Une exception plus significative peut être créée, dans laquelle la référence à l’exception interne peut être définie sur l’exception d’origine. Cette exception plus significative peut ensuite être levée pour l’appelant. Notez que cette fonctionnalité vous permet de créer une série d’exceptions liées qui se termine avec l’exception initialement levée. |
Message | Fournit les détails de la cause d’une exception. |
Source | Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur. |
StackTrace | Contient une trace de pile qui peut être utilisée pour déterminer 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 plupart des classes qui héritent de Exception n’implémentent pas de membres supplémentaires ni ne fournissent de fonctionnalités supplémentaires, elles héritent simplement de Exception. Par conséquent, vous pouvez trouver les informations les plus importantes d’une exception dans la hiérarchie des classes d’exception, le nom de l’exception et les informations contenues dans l’exception.
Nous vous recommandons de lever et d’intercepter uniquement des objets qui dérivent de Exception, mais vous pouvez lever comme exception n’importe quel objet qui dérive de la classe Object. Notez que tous les langages ne prennent pas forcément en charge la levée et l’interception d’objets qui ne dérivent pas de Exception.