Compartilhar 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 argumento que pode ser fornecido ao elevar uma exceção deste tipo.Você pode especificar vários argumentos por meio de um tipo de coleção de itens 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 funcionar, da seguinte maneira.

raise (MyError("Error message"))

Você pode usar um tipo de exceção F# diretamente no filtros em um try...with 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: a aumentar a função (F#)

Conceitos

Hierarquia de exceção

Outros recursos

Tratamento (F#) de exceção