处理
我找到了多个示例,但不清楚哪一个更好。是否存在只有一个可以显示正确错误的情况?
此外,我怀疑这并不重要,但应用程序正在使用 MVC 4。
Application_Error
中的错误时,我应该使用哪一个?我找到了多个示例,但不清楚哪一个更好。是否存在只有一个可以显示正确错误的情况?
此外,我怀疑这并不重要,但应用程序正在使用 MVC 4。
Application_Error
中的错误时,我应该使用哪一个?这取决于你需要什么。
从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);
}
FooBarException
,则使用GetLastError
方法将返回该异常,而使用GetLastError().GetBaseException()
方法将返回根本原因FooException
。因此,前者返回实际未处理的异常,而后者返回根本原因。假设Foo、Bar和FooBar异常类没有覆盖GetLastError
或InnerException
方法。
GetLastError()
了。 - user247702