Tipi di eccezione (F#)
Comprimi il sommario
Espandi il sommario
Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Tipi di eccezione (F#)

In F# vi sono due categorie di eccezioni: tipi di eccezione .NET e tipi di eccezione F#. In questo argomento viene descritto come definire e utilizzare i tipi di eccezione F#.

exception exception-type of argument-type

Nella sintassi precedente exception-type è il nome di un nuovo tipo di eccezione F# e argument-type rappresenta il tipo di un argomento che può essere fornito quando si genera un'eccezione di questo tipo. È possibile specificare più argomenti utilizzando un tipo tupla per argument-type.

Una definizione tipica per un'eccezione F# assomiglia alla seguente.


exception MyError of string


È possibile generare un'eccezione di questo tipo utilizzando la funzione raise, come indicato di seguito.


raise (MyError("Error message"))


È possibile utilizzare un tipo di eccezione F# direttamente nei filtri in un'espressione try...with, come illustrato nell'esempio seguente.


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


Il tipo di eccezione definito con la parola chiave exception in F# è un nuovo tipo che eredita da Exception.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2016 Microsoft