F#异常和内部异常属性

F#异常和内部异常属性,f#,F#,在F#中,我可以声明如下自定义异常: 字符串的异常Foo 它将字符串映射到消息属性 我如何声明一个我以后可以用来引发捕获异常的异常作为这个异常的内部异常?换句话说,我如何做(伪)这样的事情 谢谢 使用exception简单声明异常在许多方面受到限制。如果要使用标准.NET异常的其他功能(即内部异常),则可以将异常声明为类: open System type FooException(message:string, innerException:Exception) = inherit E

在F#中,我可以声明如下自定义异常:
字符串的异常Foo

它将字符串映射到消息属性

我如何声明一个我以后可以用来引发捕获异常的异常作为这个异常的内部异常?换句话说,我如何做(伪)这样的事情


谢谢

使用
exception
简单声明异常在许多方面受到限制。如果要使用标准.NET异常的其他功能(即内部异常),则可以将异常声明为类:

open System

type FooException(message:string, innerException:Exception) =
   inherit Exception(message, innerException)
您还可以提供重载构造函数,例如,如果希望使用
null
作为
InnerException
的默认值。 可以使用
raise
将异常作为普通.NET异常引发:

raise (new FooException(message, e))

我怕你会说:)。我希望我能用简短的声明做到这一点。谢谢我也很害怕,但只多了一行,不多
raise (new FooException(message, e))