Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Es gibt zwei Kategorien von Ausnahmen in F#: .NET-Ausnahmetypen und F#-Ausnahmetypen. In diesem Thema wird beschrieben, wie F#-Ausnahmetypen definiert und verwendet werden.
Syntax
exception exception-type of argument-type
Bemerkungen
In der vorherigen Syntax ist ausnahmetyp der Name eines neuen F#-Ausnahmetyps, und der Argumenttyp stellt den Typ eines Arguments dar, das angegeben werden kann, wenn Sie eine Ausnahme dieses Typs auslösen. Sie können mehrere Argumente mithilfe eines Tupeltyps für Argumenttyp angeben.
Eine typische Definition für eine F#-Ausnahme ähnelt der folgenden.
exception MyError of string
Sie können eine Ausnahme dieses Typs mithilfe der raise Funktion wie folgt generieren.
raise (MyError("Error message"))
Sie können einen F#-Ausnahmetyp direkt in den Filtern in einem try...with Ausdruck verwenden, wie im folgenden Beispiel gezeigt.
exception Error1 of string
// Using a tuple type as the argument type.
exception Error2 of string * int
let function1 x y =
try
if x = y then raise (Error1("x"))
else raise (Error2("x", 10))
with
| Error1(str) -> printfn "Error1 %s" str
| Error2(str, i) -> printfn "Error2 %s %d" str i
function1 10 10
function1 9 2
Der Ausnahmetyp, den Sie mit dem exception Schlüsselwort in F# definieren, ist ein neuer Typ, der von System.Exception.