5
在處理Application_Error
中的錯誤時,應該使用哪兩個?Application_Error - GetLastError()或GetLastError()。GetBaseException()
我找到了兩個例子,但它不是很清楚,如果一個比另一個好。是否有隻有一個會顯示正確錯誤的情況?
而且,我懷疑這個問題,但應用程序使用MVC 4
在處理Application_Error
中的錯誤時,應該使用哪兩個?Application_Error - GetLastError()或GetLastError()。GetBaseException()
我找到了兩個例子,但它不是很清楚,如果一個比另一個好。是否有隻有一個會顯示正確錯誤的情況?
而且,我懷疑這個問題,但應用程序使用MVC 4
這取決於究竟你需要的。
從Exception.GetBaseException的documenation:
在派生類重寫時,返回Exception,它是一個或多個後續的異常的根本原因。
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
。所以前者返回實際未處理的異常,而後者返回根本原因。
我認爲富,酒吧和FooBar的異常類不重寫GetLastError
或InnerException
尼斯解釋。我想要未處理的異常,所以'GetLastError()'它是。 – Stijn 2013-02-26 09:51:17