2017-01-25 59 views
2

我想知道是否有其他語句,如在python中,當附加到一個try-catch結構,使其中的代碼塊只能執行,如果沒有例外拋出/捕獲。C++異常處理中的其他語句

例如:

try{ 
    //code here 
}catch(...){ 
    //exception handling here 
} ELSE { 
    //this should execute only if no exceptions occurred 
} 
+3

不,沒有。 –

回答

-2

僅從catch子句中的函數返回(或重新拋出)。

void func() 
    { 

     try 
     { 

      // Do something 
     }  
     catch(...) 
     { 
      // clean up the mess 
      return; 
     } 

    // do what comes next... the catch clause won't get here. 
} 
+2

或者您也可以在try塊中完成所有操作。例外情況會在您發生時立即將您踢出去。 – user4581301

+0

我發現很多異常沒有被捕獲的情況,但是沒有任何異常被拋出後沒有繼續執行。 – user4581301

+0

這就是如果你發現異常。要做到這一點,你必須用「catch(...)」幾乎包圍所有的東西,以確保你得到所有的例外。這將以更復雜的代碼結束。 – user4581301

7

爲什麼不把它放在try塊的結束?

+0

只是想知道是否有任何,我不知道,它只是使代碼更好 – J3STER

+1

@ J3STER不同意這一點。對「其他」案件的處理破壞了單一代碼流程,除非它們確實發生,否則完全忽略了例外情況。如果沒有拋出異常,try塊中的所有內容都是「else」。 – user4581301

+2

@ J3STER:爲什麼會讓代碼更好?現有的異常機制已經可以讓你按照你想要的*做任何額外的結構*。 –