Sommaire

Créer ses propres exceptions

1. Introduction

Autant que possible, il faut utiliser les exceptions .NET, c’est-à-dire les exceptions qui héritent de System.Exception. Mais dans un gros programme, il est probable que certaines erreurs seront spécifiques et propres au programme lui-même. L’idée de types d’exceptions propres au programme peut être utile.

Dans cette hypothèse, on ferait hériter notre nouvelle exception de la classe System.Exception. On lui adjoindra un attribut permettant sa sérialisation.

2. Exemple

On crée donc notre propre exception comme le propose l’exemple suivant en héritant de la classe Exception et en implémentant au passage l’interface ISeriazable.

[Serializable]  
public class BookWritingException : Exception, ISerializable  
{  
    public BookWritingException(string message) : base(message)  
    {  
       this.HelpLink = "https://www.editions-eni.fr/";  
       this.HResult = 12345;  
    }  
}

On se contente pour le moment de lui adjoindre un HResult et un HelpLink, mais idéalement on devrait caractériser au mieux l’exception en détaillant chaque propriété évoquée précédemment.

L’exemple complet suivant utilise cette nouvelle exception :

using System;  
using System.Runtime.Serialization;  
  
namespace ConsoleAppException   ...