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

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.

RemarqueRemarque

Dans les cas où vous utilisez la communication à distance, 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

    Public Sub New(message As String)
        MyBase.New(message)
    End Sub

    Public Sub New(message As String, inner As Exception)
        MyBase.New(message, inner)
    End Sub
End Class
using System;

public class EmployeeListNotFoundException: Exception
{
    public EmployeeListNotFoundException()
    {
    }

    public EmployeeListNotFoundException(string message)
        : base(message)
    {
    }

    public EmployeeListNotFoundException(string message, Exception inner)
        : base(message, inner)
    {
    }
}
using namespace System;

public ref class EmployeeListNotFoundException : Exception
{
public:
    EmployeeListNotFoundException()
    {
    }

    EmployeeListNotFoundException(String^ message)
        : Exception(message)
    {
    }

    EmployeeListNotFoundException(String^ message, Exception^ inner)
        : Exception(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

Meilleures pratiques pour la gestion des exceptions

Autres ressources

Notions de base de la gestion des exceptions