2013-05-30 21 views
0

所以我想知道一個嵌套的try-catch-finally塊的行爲。試試Catch最後嵌套的行爲與例外

我的意思是,如果在第一個finally區塊內部,我們有另一個try-catch-finally區塊,並且內部finally區塊發生異常?

異常是否會被傳播?它會被抓到什麼地方?

我應該在哪裏發現異常?在內部finally區塊或者是否應該從上面的代碼中捕獲它?

實施例:

static bool Func() 
{ 
    try 
    {} 
    catch 
    {} 
    finally 
    { 
     try 
     {} 
     catch 
     {} 
     finally 
     { 
      throw new ApplicationException(); 
     } 
    } 
} 
+0

不,我問在內部異常finally塊@BenReich – AAlferez

+0

沒有,@Anirudh,我問一個嵌套的一個。 – AAlferez

+0

內部finally塊的異常將傳播出包含finally塊,並將在更高級別處理..因此,最後拋出內部finally塊將向外,直到它找到一個特定的catch塊在更高的水平,否則它會拋出異常如果沒有被發現 – Anirudha

回答

0

取決於。你可以在你的內部異常中處理這個異常,但是如果你不想處理它,你可以將它拋出,這樣外部的Try Catch將'接收'這個異常。

的更詳細的例子見here

+0

下的catch。如果異常發生在finally中,外部Try Cartch如何去讀取異常? – AAlferez