Types d'exceptions (F#)

En F#, il existe deux catégories d'exceptions : les types d'exceptions .NET et les types d'exceptions F#. Cette rubrique décrit comment définir et utiliser les types d'exceptions F#.

exception exception-type of argument-type

Notes

Dans la syntaxe précédente, exception-type est le nom d'un nouveau type d'exception F#, et argument-type 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 de tuple pour argument-type.

Une définition classique pour une exception F# se présente comme suit.

exception MyError of string

Vous pouvez générer une exception de ce type à l'aide de la fonction raise, comme suit.

raise (MyError("Error message"))

Vous pouvez utiliser un type d'exception F# directement dans les filtres dans une expression try...with, comme indiqué 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

En F#, le type d'exception que vous définissez avec le mot clé exception est un nouveau type qui hérite de Exception.

Voir aussi

Référence

Exceptions : fonction raise (F#)

Concepts

Hiérarchie des exceptions

Autres ressources

Gestion des exceptions (F#)