Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.