Types d'exceptions
Il existe deux catégories d’exception en F# : les types d’exception .NET et les types d’exception F#. Cette rubrique explique comment définir et utiliser les types d’exception F#.
Syntaxe
exception exception-type of argument-type
Notes
Dans la syntaxe précédente, exception-type représente le nom d’un nouveau type d’exception F#, et argument-type représente le type d’un argument qui peut être fourni quand vous levez une exception de ce type. Vous pouvez spécifier plusieurs arguments en utilisant un type tuple pour argument-type.
Ce qui suit correspond à une définition classique pour une exception F#.
exception MyError of string
Vous pouvez générer une exception de ce type à l’aide de la fonction raise
, comme indiqué ci-après.
raise (MyError("Error message"))
Vous pouvez utiliser un type d’exception F# directement dans les filtres d’une expression try...with
, comme le montre 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 mot clé exception
en F# est un nouveau type qui hérite de System.Exception
.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour