Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Il existe deux catégories d’exceptions dans F# : les types d’exceptions .NET et les types d’exceptions F#. Cette rubrique explique comment définir et utiliser des types d’exceptions F#.
Syntaxe
exception exception-type of argument-type
Remarques
Dans la syntaxe précédente, le type d’exception est le nom d’un nouveau type d’exception F#, et le type d’argument représente le type d’un argument qui peut être fourni lorsque vous déclenchez une exception de ce type. Vous pouvez spécifier plusieurs arguments à l’aide d’un type tuple pour le type d’argument.
Une définition classique pour une exception F# ressemble à ce qui suit.
exception MyError of string
Vous pouvez générer une exception de ce type à l’aide de la raise fonction, comme suit.
raise (MyError("Error message"))
Vous pouvez utiliser un type d’exception F# directement dans les filtres d’une try...with expression, comme illustré dans l’exemple suivant.
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
Le type d’exception que vous définissez avec le exception mot clé en F# est un nouveau type qui hérite de System.Exception.