use*_*702 6 asp.net error-handling
处理错误时Application_Error,我应该使用哪两个?
我发现两者都有多个例子,但是如果一个比另一个好,那就不太清楚了.是否只有一个会显示正确的错误?
此外,我怀疑这很重要,但应用程序正在使用MVC 4.
这取决于你究竟需要什么.
从Exception.GetBaseException的文档:
在派生类中重写时,返回异常,该异常是一个或多个后续异常的根本原因.
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);
}
Run Code Online (Sandbox Code Playgroud)
然后GetLastError会得到你FooBarException,同时GetLastError().GetBaseException()会得到你FooException.所以前者返回实际未处理的异常,而后者返回根本原因.
我假设Foo,Bar和FooBar异常类不会覆盖GetLastError或InnerException
| 归档时间: |
|
| 查看次数: |
1228 次 |
| 最近记录: |