Elmah Raise() 记录内部异常

Elmah Raise() records inner exception

我正在尝试像这样使用 Elmah 引发异常:

try
{
    Foo();
}
catch (WebException ex)
{
    var nex = new Exception("Foo failed", ex);
    Elmah.ErrorSignal.FromCurrentContext().Raise(nex);
}

然而,Elmah 记录的是内部异常 ex,而不是我的新包装器异常 nex,即结果数据库记录有:

Type = "System.Net.WebException"Message = "The remote server returned an error: (400) Bad Request."

而不是像我期望的那样:

Type = "System.Exception"Message = "Foo failed"

到底怎么回事?

ELMAH 在异常列表中显示内部异常的类型 (/elmah.axd)。如果您单击错误消息旁边的详细信息 link,我敢肯定您会看到类似这样的内容:

System.Exception: Foo failed ---> System.Net.WebException

我刚刚创建了一个测试项目并验证了这是有经验的行为。

编辑: 正如评论中所讨论的,在类型和消息字段中使用基本异常似乎是 intended behavior