2013-02-26 58 views

回答

6

這取決於究竟你需要的。

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的異常類不重寫GetLastErrorInnerException

+0

尼斯解釋。我想要未處理的異常,所以'GetLastError()'它是。 – Stijn 2013-02-26 09:51:17

相關問題