Udostępnij za pośrednictwem


Typy wyjątków (F#)

Istnieją dwie kategorie wyjątków w F#:.Typy wyjątków netto i typów wyjątków F#.W tym temacie opisano sposób definiowania i korzystać z wyjątkiem typów F#.

exception exception-type of argument-type

Uwagi

W poprzednich składni exception-type jest nazwą nowego F# wyjątek typu, i argument-type reprezentuje typ argumentu, który może być dostarczone do wzbudzenie wyjątku, tego typu.Można określić wiele argumentów przy użyciu typu tuple dla argument-type.

Typowe definicji, za wyjątkiem F# podobny do następującego.

exception MyError of string

Wyjątek ten typ można generować za pomocą raise działają w następujący sposób.

raise (MyError("Error message"))

Typ wyjątku F# można użyć bezpośrednio w filtry w try...with wyrażenie, jak pokazano w poniższym przykładzie.

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 wyjątku, który zdefiniujesz z exception słowa kluczowego w F# jest nowym typem, która dziedziczy z Exception.

Zobacz też

Informacje

Wyjątki: raise — Funkcja (F#)

Koncepcje

Hierarchia wyjątków

Inne zasoby

Obsługa wyjątków (F#)