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