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
.