在我的控制器操作中,我正在捕获异常并在冒泡到Application_Error()方法之前添加一些额外的信息
ActionResult Index()
{
try
{
var i = 1 / 0;
}
catch(Exception e)
{
throw new Exception("My new Exception!", e)
}
}
private void Application_Error(object sender, EventArgs e)
{
// Breakpoint shows original error! Not my newly thrown one!
var exception = Server.GetLastError().GetBaseException();
}
Run Code Online (Sandbox Code Playgroud)
快速浏览Exception.GetBaseException方法的文档可以清除所有内容:
一系列异常由一组异常组成,例如链中的每个异常都是作为其
InnerException
属性中引用的异常的直接结果而抛出的.对于给定的链,可能只有一个例外是链中所有其他异常的根本原因.此异常称为基本异常,其InnerException
属性始终包含空引用.
您将原始设置Exception
为InnerException
抛出Exception
的原始,因此原始Exception
是 "基本异常".
也许你不应该打电话,GetBaseException
如果你想看到Exception
链中最新的?
归档时间: |
|
查看次数: |
187 次 |
最近记录: |