Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Istnieją dwie kategorie wyjątków w języku F#: typy wyjątków platformy .NET i typy wyjątków języka F#. W tym temacie opisano sposób definiowania i używania typów wyjątków języka F#.
Składnia
exception exception-type of argument-type
Uwagi
W poprzedniej składni typ wyjątku to nazwa nowego typu wyjątku języka F#, a typ argumentu reprezentuje typ argumentu, który można podać podczas zgłaszania wyjątku tego typu. Można określić wiele argumentów przy użyciu typu krotki dla typu argumentu.
Typowa definicja wyjątku języka F# przypomina następującą.
exception MyError of string
Wyjątek tego typu można wygenerować przy użyciu raise funkcji w następujący sposób.
raise (MyError("Error message"))
Możesz użyć typu wyjątku języka F# bezpośrednio w filtrach w wyrażeniu try...with , 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 zdefiniowany za pomocą słowa kluczowego exception w języku F# to nowy typ, który dziedziczy z System.Exceptionklasy .