Freigeben über


Ausnahmetypen (F#)

In F# gibt es zwei Kategorien von Ausnahmen: .NET-Ausnahmetypen und F#-Ausnahmetypen.In diesem Thema wird beschrieben, wie F#-Ausnahmetypen definiert und verwendet werden.

exception exception-type of argument-type

Hinweise

In der vorherigen Syntax ist exception-type der Name eines neuen F#-Ausnahmetyps, und argument-type stellt den Typ eines Arguments dar, das beim Auslösen einer Ausnahme dieses Typs bereitgestellt werden kann.Sie können mehrere Argumente angeben, indem Sie als argument-type einen Tupeltyp verwenden.

Eine typische Definition für eine F#-Ausnahme lautet etwa folgendermaßen.

exception MyError of string

Sie können mit der raise-Funktion eine Ausnahme dieses Typs wie folgt generieren.

raise (MyError("Error message"))

Sie können einen F#-Ausnahmetyp direkt in den Filtern eines try...with-Ausdrucks 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 in F# mit dem exception-Schlüsselwort definieren, ist ein neuer Typ, der von Exception erbt.

Siehe auch

Referenz

Ausnahmen: Die raise-Funktion (F#)

Konzepte

Ausnahmenhierarchie

Weitere Ressourcen

Ausnahmebehandlung (F#)