Share via


Uitzonderingstypen

Er zijn twee categorieën uitzonderingen in F#: .NET-uitzonderingstypen en F#-uitzonderingstypen. In dit onderwerp wordt beschreven hoe u F#-uitzonderingstypen definieert en gebruikt.

Syntaxis

exception exception-type of argument-type

Opmerkingen

In de vorige syntaxis is uitzonderingstype de naam van een nieuw F#-uitzonderingstype en argumenttype vertegenwoordigt het type van een argument dat kan worden opgegeven wanneer u een uitzondering van dit type genereert. U kunt meerdere argumenten opgeven met behulp van een tuple-type voor argumenttype.

Een typische definitie voor een F#-uitzondering lijkt op het volgende.

exception MyError of string

U kunt als volgt een uitzondering van dit type genereren met behulp van de raise functie.

raise (MyError("Error message"))

U kunt een F#-uitzonderingstype rechtstreeks in de filters in een try...with expressie gebruiken, zoals wordt weergegeven in het volgende voorbeeld.

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

Het uitzonderingstype dat u definieert met het exception trefwoord in F# is een nieuw type dat overkomt van System.Exception.

Zie ook