Tipos de exceções (F#)
Há duas categorias de exceções no F#: .Os tipos de exceção NET e tipos de exceção em F#. Este tópico descreve como definir e usar tipos de exceção em F#.
exception exception-type of argument-type
Comentários
Na sintaxe anterior, exception-type é o nome de um novo F# tipo de exceção, e argument-type representa o tipo de um argumento que pode ser fornecido ao elevar uma exceção do tipo. Você pode especificar vários argumentos usando um tipo de tupla para argument-type.
Uma definição típica para uma exceção F# é semelhante ao seguinte.
exception MyError of string
Você pode gerar uma exceção desse tipo usando o raise a função, como segue:
raise (MyError("Error message"))
Você pode usar um tipo de exceção F# diretamente em filtros em um try...with a expressão, conforme mostrado no exemplo a seguir.
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
O tipo de exceção que você define com o exception palavra-chave em F# é um novo tipo que herda de Exception.
Consulte também
Referência
Exceções: o aumento de função (F#)