Partager via


Comment : créer des exceptions définies par l'utilisateur

Mise à jour : novembre 2007

Si vous voulez que les utilisateurs puissent établir une distinction par programme entre certains cas d'erreur, vous pouvez créer vos propres exceptions définies par l'utilisateur. Le .NET Framework fournit une hiérarchie de classes d'exceptions qui sont en fin de compte dérivées de la classe de base Exception. Chacune de ces classes définit une exception spécifique, ce qui fait que dans bien des cas vous n'avez qu'à intercepter l'exception. Vous pouvez également créer vos propres classes d'exceptions par une dérivation à partir de la classe Exception.

Lorsque vous créez vos propres exceptions, vous pouvez vous conformer aux bonnes pratiques de programmation en terminant le nom de classe de l'exception définie par l'utilisateur avec le mot « Exception ». Les bonnes pratiques de programmation incitent aussi à implémenter les trois constructeurs communs recommandés, comme le montre l'exemple suivant.

Remarque :

Dans les cas où vous utilisez les fonctionnalités distantes, vous devez vous assurer que les métadonnées pour d'éventuelles exceptions définies par l'utilisateur sont disponibles sur le serveur (l'appelé) et le client (l'objet proxy ou l'appelant). Par exemple, le code qui appelle une méthode dans un domaine d'application séparé doit pouvoir trouver l'assembly contenant une exception levée par un appel distant. Pour plus d'informations, consultez Meilleure pratiques pour la gestion des exceptions.

Dans l'exemple suivant, une nouvelle classe d'exception, EmployeeListNotFoundException, est dérivée de Exception. Trois constructeurs sont définis dans la classe, chacun utilisant des paramètres différents.

Exemple

Imports System
Public Class EmployeeListNotFoundException
   Inherits Exception
   
   Public Sub New()
   End Sub 'New
   
   Public Sub New(message As String)
      MyBase.New(message)
   End Sub 'New
   
   Public Sub New(message As String, inner As Exception)
      MyBase.New(message, inner)
   End Sub 'New
End Class 'EmployeeListNotFoundException
using System;
public class EmployeeListNotFoundException: Exception
{
   public EmployeeListNotFoundException()
      {
      }
   public EmployeeListNotFoundException(string message)
      : base(message)
      {
      }
   public EmployeeListNotFoundException(string message, Exception inner)
      : base(message, inner)
      {
      }
}

Voir aussi

Tâches

Comment : utiliser le bloc try/catch pour intercepter des exceptions

Comment : utiliser des exceptions spécifiques dans un bloc catch

Concepts

Méthodes conseillées pour la gestion des exceptions

Autres ressources

Notions de base de la gestion des exceptions