我想知道是否有其他語句,如在python中,當附加到一個try-catch結構,使其中的代碼塊只能執行,如果沒有例外拋出/捕獲。C++異常處理中的其他語句
例如:
try{
//code here
}catch(...){
//exception handling here
} ELSE {
//this should execute only if no exceptions occurred
}
我想知道是否有其他語句,如在python中,當附加到一個try-catch結構,使其中的代碼塊只能執行,如果沒有例外拋出/捕獲。C++異常處理中的其他語句
例如:
try{
//code here
}catch(...){
//exception handling here
} ELSE {
//this should execute only if no exceptions occurred
}
僅從catch
子句中的函數返回(或重新拋出)。
void func()
{
try
{
// Do something
}
catch(...)
{
// clean up the mess
return;
}
// do what comes next... the catch clause won't get here.
}
或者您也可以在try塊中完成所有操作。例外情況會在您發生時立即將您踢出去。 – user4581301
我發現很多異常沒有被捕獲的情況,但是沒有任何異常被拋出後沒有繼續執行。 – user4581301
這就是如果你發現異常。要做到這一點,你必須用「catch(...)」幾乎包圍所有的東西,以確保你得到所有的例外。這將以更復雜的代碼結束。 – user4581301
爲什麼不把它放在try塊的結束?
只是想知道是否有任何,我不知道,它只是使代碼更好 – J3STER
@ J3STER不同意這一點。對「其他」案件的處理破壞了單一代碼流程,除非它們確實發生,否則完全忽略了例外情況。如果沒有拋出異常,try塊中的所有內容都是「else」。 – user4581301
@ J3STER:爲什麼會讓代碼更好?現有的異常機制已經可以讓你按照你想要的*做任何額外的結構*。 –
不,沒有。 –