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.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour