Gewusst wie: Erstellen benutzerdefinierter Ausnahmen

Aktualisiert: November 2007

Wenn Benutzer in der Lage sein sollen, programmgesteuert zwischen mehreren Fehlerzuständen zu unterscheiden, können Sie Ihre eigenen benutzerdefinierten Ausnahmen erstellen. .NET Framework stellt eine Hierarchie von Ausnahmeklassen bereit, die letztlich alle von der Basisklasse Exception abgeleitet werden. Jede dieser Klassen definiert eine spezifische Ausnahme, sodass Sie in vielen Fällen nur noch die jeweilige Ausnahme abfangen müssen. Sie können auch Ihre eigenen Ausnahmeklassen durch Ableitung von der Exception-Klasse erstellen.

Beim Erstellen eigener Ausnahmen ist es sinnvoll, deren Klassennamen auf das Wort "Exception" enden zu lassen. Außerdem ist es ratsam, die im folgenden Beispiel gezeigten drei empfohlenen allgemeinen Konstruktoren zu implementieren.

Hinweis:

Wenn Sie Remoting verwenden, müssen Sie sicherstellen, dass die Metadaten für alle benutzerdefinierten Ausnahmen auf dem Server (der aufgerufen wird) und für den Client (Proxyobjekt oder Aufrufer) verfügbar sind. Zum Beispiel muss Code, durch den eine Methode in einer anderen Anwendungsdomäne aufgerufen wird, die Assembly finden können, in der die durch einen Remoteaufruf ausgelöste Ausnahme enthalten ist. Weitere Informationen finden Sie unter Empfohlene Vorgehensweise für die Ausnahmebehandlung.

Im folgenden Beispiel wird die neue Ausnahmeklasse EmployeeListNotFoundException von der Exception abgeleitet. In der Klasse werden drei Konstruktoren definiert, jeder mit anderen Parametern.

Beispiel

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)
      {
      }
}

Siehe auch

Aufgaben

Gewusst wie: Verwenden des Try-Catch-Blocks zum Abfangen von Ausnahmen

Gewusst wie: Verwenden spezifischer Ausnahmen in einem Catch-Block

Konzepte

Empfohlene Vorgehensweise für die Ausnahmebehandlung

Weitere Ressourcen

Grundlagen der Ausnahmebehandlung