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