Partilhar via


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#)

Conceitos

Hierarquia de exceções

Outros recursos

Exceção de tratamento (F#)