加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Application_Error – GetLastError()或GetLastError

发布时间:2020-12-16 07:05:24 所属栏目:asp.Net 来源:网络整理
导读:在处理Application_Error中的错误时,我应该使用这两个中的哪一个? 我发现两者都有多个例子,但是如果一个比另一个好,那就不太清楚了.是否只有一个会显示正确的错误? 此外,我怀疑这很重要,但应用程序正在使用MVC 4. 解决方法 这取决于你究竟需要什么. 从Exce
在处理Application_Error中的错误时,我应该使用这两个中的哪一个?

我发现两者都有多个例子,但是如果一个比另一个好,那就不太清楚了.是否只有一个会显示正确的错误?

此外,我怀疑这很重要,但应用程序正在使用MVC 4.

解决方法

这取决于你究竟需要什么.

从Exception.GetBaseException的文件:

When overridden in a derived class,returns the Exception that is the root cause of one or more subsequent exceptions.

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

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异常类不会覆盖GetLastError或InnerException

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读