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.
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 ...
Abonnement
tous les livres et vidéos ENI en illimité sans engagement
du livre imprimé ou du livre numérique