Výjimky: zvýšení funkce (F#)
raise Funkce se používá k označení, že došlo k chybě nebo výjimečných podmínek.Informace o chybě je zachycena výjimka objektu.
raise (expression)
Poznámky
raise Funkce generuje výjimku objekt a iniciuje zásobníku příkazem procesu.Společný jazykový modul runtime (CLR) spravovat proces unwinding zásobníku tak chování tohoto procesu je stejný jako v jakékoli jiné.NET jazyk.Unwinding proces zásobníku je hledat popisovač výjimky odpovídající generované výjimku.Vyhledávání začne v aktuálním try...with výraz, pokud existuje.Každý vzorek v with bloku je kontrolována v pořadí.Pokud je nalezen odpovídající popisovač výjimky, výjimka se považuje za zpracování; Zásobník je jinak, unwound a with bloky nahoru v řetězu volání jsou kontrolovány, dokud není nalezen odpovídající popisovač.Všechny finally bloků, které se vyskytují v řetězci volání také provedeny v pořadí jako unwinds zásobníku.
raise Je ekvivalent funkce throw v C# nebo C++.Použití reraise v úlovku popisovač k šíření stejné výjimky až řetěz volání.
Následující kód příklady ilustrují použití raise funkci generování výjimku.
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 Funkci lze také zvýšit.NET výjimky, jak je znázorněno v následujícím příkladu.
let divide x y =
if (y = 0) then raise (System.ArgumentException("Divisor cannot be zero!"))
else
x / y
Viz také
Referenční dokumentace
Výjimky: Pokuste se výraz (F#)...
Výjimky: Pokuste... nakonec výraz (F#)
Výjimky: InvalidArg funkce (F#)