Sdílet prostřednictvím


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.

Viz také

Referenční dokumentace

Výjimky: Funkce raise (F#)

Koncepty

Hierarchie výjimek

Další zdroje

Zpracování výjimek (F#)