gpt4 book ai didi

asp.net - Application_Error - GetLastError() 或 GetLastError().GetBaseException()

转载 作者:行者123 更新时间:2023-12-04 11:54:45 25 4
gpt4 key购买 nike

处理 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 异常类不会覆盖 GetLastErrorInnerException

关于asp.net - Application_Error - GetLastError() 或 GetLastError().GetBaseException(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15085465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com