Compartir a través de


Tipos de excepción (F#)

Hay dos categorías de excepciones en F#: los tipos de excepción de .NET y los tipos de excepción de F#.En este tema se describe cómo definir y utilizar los tipos de excepción de F#.

exception exception-type of argument-type

Comentarios

En la sintaxis anterior, exception-type es el nombre de un nuevo tipo de excepción de F# y argument-type representa el tipo de un argumento que se puede proporcionar cuando se inicia una excepción de este tipo.Se pueden especificar varios argumentos utilizando un tipo de tupla para argument-type.

A continuación se muestra una definición típica para una excepción de F#.

exception MyError of string

Se puede generar una excepción de este tipo mediante la función raise, como sigue.

raise (MyError("Error message"))

Un tipo de excepción de F# se puede utilizar directamente en los filtros de una expresión try...with, como se muestra en el ejemplo siguiente.

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

El tipo de excepción que se define con la palabra clave exception de F# es un nuevo tipo que hereda de Exception.

Vea también

Referencia

Excepciones: función raise (F#)

Conceptos

Jerarquía de excepciones

Otros recursos

Control de excepciones (F#)