Freigeben über


Behandlung von Ausnahmen

Wenn eine Ausnahme in einem Bereich auftritt, werden alle logischen Ausführungsthreads im Bereich angehalten. Die Runtime-Engine sucht nach einem Ausnahmehandler für die entsprechende Ausnahme.

Wenn ein Ausnahmehandler gefunden wurde, der mit dem spezifischen Typ oder einem der Basistypen übereinstimmt, übernimmt dieser Handler die Steuerung und dessen Code wird ausgeführt.

Hinweis

Der Ausnahmetyp muss von System.Exception abgeleitet werden.

Ausnahmehandler werden sequenziell ausgeführt, d. h., es wird in der entsprechenden Reihenfolge überprüft, ob sie eine bestimmte Ausnahme behandeln können. Damit Ausnahmehandler ordnungsgemäß ausgeführt werden können, müssen die Handler für spezifische Typen vor den Handlern für allgemeinere Typen angeordnet werden. So ist gewährleistet, dass ein spezifischer Ausnahmetyp vom entsprechenden Handler behandelt wird und nicht von einem Handler für allgemeine Typen.

Wird der Ausnahmehandler ordnungsgemäß abgeschlossen, wird die Steuerung an den umgebenden Bereich übergegeben. Wenn im umgebenden Bereich keine Ausnahme ausgelöst wurde, wird die Orchestrierung weiter ausgeführt. Wenn der Ausnahmehandler mit einer throw-Anweisung abschließt, wird die ursprüngliche Ausnahme erneut ausgelöst, damit im umgebenden Bereich entsprechende Aktionen ausgeführt werden können. Sie können jedoch auch eine andere auszulösende Ausnahme festlegen.

Wird kein Ausnahmehandler festgestellt, wird der Standardausnahmehandler ausgeführt. Der Standardausnahmehandler eines Bereichs ruft die Kompensierungen für alle geschachtelten Transaktionen auf und löst die Ausnahme erneut aus. Wenn Sie einen benutzerdefinierten Ausnahmehandler erstellen, können Sie festlegen, dass die Ausnahme nicht weitergegeben wird.

Weitere Informationen

Ausnahmen