Elmah Raise()记录内部异常

时间:2018-09-26 13:30:15

标签: c# asp.net .net elmah

我正在尝试像这样使用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"

到底是怎么回事?

1 个答案:

答案 0 :(得分:1)

ELMAH在例外列表(/elmah.axd)上显示内部例外的类型。如果您单击错误消息旁边的“详细信息”链接,我很确定您会看到以下内容:

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

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

编辑:如评论中所述,在类型和消息字段中使用基本例外似乎是intended behavior