在处理Application_Error中的错误时,我应该使用这两个中的哪一个?
我为这两个都找到了多个例子,但还不清楚其中一个是否比另一个更好。是否存在只有一个会显示正确错误的情况?
此外,我怀疑这一点,但应用程序使用的是MVC4。
发布于 2013-02-26 17:41:50
这取决于你到底需要什么。
来自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);
}然后GetLastError将为您提供FooBarException,而GetLastError().GetBaseException()将为您提供FooException。因此,前者返回实际未处理的异常,而后者返回根本原因。
我假设Foo、Bar和FooBar异常类不会覆盖GetLastError或InnerException
https://stackoverflow.com/questions/15085465
复制相似问题