Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az F#-ban két kivételkategória létezik: .NET-kivételtípusok és F# kivételtípusok. Ez a témakör bemutatja, hogyan definiálhat és használhat F# kivételtípusokat.
Szemantika
exception exception-type of argument-type
Megjegyzések
Az előző szintaxisban a kivételtípus egy új F# kivételtípus neve, az argumentumtípus pedig egy argumentumtípust jelöl, amely az ilyen típusú kivételek felmerülésekor adható meg. Több argumentumot is megadhat az argumentumtípus rekordtípusával.
Az F#-kivételek tipikus definíciója a következőhöz hasonló.
exception MyError of string
A függvény használatával az alábbi módon hozhat létre kivételt ebből a raise típusból.
raise (MyError("Error message"))
Az F# kivételtípust közvetlenül használhatja egy try...with kifejezés szűrőiben, ahogy az az alábbi példában is látható.
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
Az F# kulcsszóval exception definiált kivételtípus egy új típus, amely a következőtől System.Exceptionöröklődik: .