Typy výjimek (F#)
Existují dvě kategorie výjimky v F#:.NET výjimku typy a F# výjimku.Toto téma popisuje, jak definovat a používat výjimky typy F#.
exception exception-type of argument-type
Poznámky
V syntaxi předchozí exception-type je název nového F# výjimce typu a argument-type představuje typ argumentu, který může být dodán při zvýšení výjimku tohoto typu.Můžete zadat více argumentů pomocí typu tuple pro argument-type.
Typické definici pro výjimky F# následujícímu.
exception MyError of string
Výjimku tohoto typu lze generovat pomocí raise takto fungovat.
raise (MyError("Error message"))
Typem výjimky F# lze použít přímo do filtrů v try...with výrazu, jak ukazuje následující příklad.
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
Typ výjimky, která definuje s exception klíčové slovo v F# je nový typ, který dědí z Exception.