Wyjątki: raise — Funkcja (F#)
raise Funkcja jest używana do wskazania, że wystąpił błąd lub wyjątkowe warunki.Informacje o błędzie są przechwytywane w obiekcie wyjątek.
raise (expression)
Uwagi
raise Funkcji generuje obiekt wyjątku i inicjuje stos niekontrolowanej procesu.Proces odkręcanie stosu jest zarządzany przez common language runtime (CLR), tak zachowanie tego procesu jest taki sam, jak jest w innej.Język netto.Proces odkręcanie stosu jest wyszukiwanie obsługi wyjątku, który odpowiada wygenerowanego wyjątku.Wyszukiwanie rozpoczyna się w bieżącym try...with wyrażenie, jeśli istnieje.Każdy deseń w with bloku jest zaznaczone, w kolejności.Po znalezieniu pasującego procedury obsługi wyjątków wyjątek jest uważany za obsługiwane; w przeciwnym razie stosu jest zwiniętej i with bloków łańcucha wywołania są sprawdzane w celu znalezienia pasujących obsługi.Każdy finally bloków, które pojawiły się w łańcuchu wywołania są wykonywane w sekwencji jako stos odkręcania.
raise Funkcja jest równoważne z throw w języku C# lub C++.Użyj reraise w obsługi catch do propagowania ten sam wyjątek łańcucha połączenia.
W poniższych przykładach kodu ilustrują użycie raise funkcji do wygenerowania wyjątku.
exception InnerError of string
exception OuterError of string
let function1 x y =
try
try
if x = y then raise (InnerError("inner"))
else raise (OuterError("outer"))
with
| InnerError(str) -> printfn "Error1 %s" str
finally
printfn "Always print this."
let function2 x y =
try
function1 x y
with
| OuterError(str) -> printfn "Error2 %s" str
function2 100 100
function2 100 10
raise Funkcja może również służyć do podnoszenia.Wyjątki netto, jak pokazano w poniższym przykładzie.
let divide x y =
if (y = 0) then raise (System.ArgumentException("Divisor cannot be zero!"))
else
x / y
Zobacz też
Informacje
Wyjątki: try...with — Wyrażenie (F#)
Wyjątki: try...finally — Wyrażenie (F#)
Wyjątki: failwith — Funkcja (F#)
Wyjątki: invalidArg — Funkcja (F#)