首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Application_Error - GetLastError()或GetLastError().GetBaseException()

Application_Error - GetLastError()或GetLastError().GetBaseException()
EN

Stack Overflow用户
提问于 2013-02-26 17:27:55
回答 1查看 1.3K关注 0票数 7

在处理Application_Error中的错误时,我应该使用这两个中的哪一个?

我为这两个都找到了多个例子,但还不清楚其中一个是否比另一个更好。是否存在只有一个会显示正确错误的情况?

此外,我怀疑这一点,但应用程序使用的是MVC4。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-26 17:41:50

这取决于你到底需要什么。

来自Exception.GetBaseException的文档

在派生类中重写时,返回作为一个或多个后续异常的根本原因的异常。

Application_Error在上层处理异常,可能在几个异常处理机制之后,所以如果异常像这样抛出:

代码语言:javascript
复制
try {
   //Lots of code, method calls, etc...
   try {
       throw new FooException("Foo");
   } catch(FooException fe) {
       throw new BarException("Bar", fe);
   }
}catch(BarException be) {
    throw new FooBarException("FooBar", be);
}

然后GetLastError将为您提供FooBarException,而GetLastError().GetBaseException()将为您提供FooException。因此,前者返回实际未处理的异常,而后者返回根本原因。

我假设Foo、Bar和FooBar异常类不会覆盖GetLastErrorInnerException

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15085465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档