異常處理對於**來說,有點類似於goto
void myfunc(void)
catch(int i)//嚴格匹配型別,異常值型別是int,並且該異常處理塊離異常最近
catch(char i)//型別不匹配
cout
<< "2"
<< endl;//這句話會被執行
}int main(int argc, char *argv)
catch(int i)//由於優先順序太低,未被執行
cout
<< "3"
<< endl;//這句話會被執行
return
0;}
catch自己也能丟擲異常,即將捕獲的異常再次丟擲。通過這個操作,可以實現異常的強制型別轉換,這稱之為異常的「重新解釋」
try
catch(int i)//將異常「重新解釋」為字串後再次丟擲
}catch(const
char* cs)//正式進行異常處理
stl庫中,提供了的異常類族
有一點要注意,由於子類是父類的超集,子類異常可以被父類異常catch所捕獲。所以在同時應用父子關係的異常類時,必須將子類異常catch放在前面,而父類異常catch放在後面。比如out_of_range是logic_error的子類,則必須如下使用:
try
catch(out_of_range e)
catch(logic_error e)
的異常處理 C 異常處理總結
做開發不僅僅要考慮到業務邏輯更要在寫 時將各種可能考慮周全,但是這又是很難的事情,畢竟開發就是個人的事,而使用者可能上萬甚至百萬級別。這時,程式的穩定性就極為重要,我們不能讓程式因為某一處執行出問題而就直接導致程式或者產生其他更嚴重的後果,比如 做除法時當除數為零時,陣列訪問越界時,容器capaci...
異常處理(二 C語言的異常處理)
1 異常終止 標準c庫提供了abort 和exit 兩個函式,它們可以強行終止程式的執行,其宣告處於 標頭檔案中。這兩個函式本身不能檢測異常,但在c程式發生異常後經常使用這兩個函式進行程式終止。下面的這個例子描述了exit 的行為 code include include int main void...
C 的異常處理
c 的異常處理用到 try catch try塊是乙個普通的程式塊,就一般運 況而言跟沒有tryd的情況是一樣的,但在異常出現時,往往把可能出現異常的一些語句,包括函式的呼叫,比如在資料庫程式設計程式設計中,一些管理資訊系統在連線資料庫的時候 特別是ado方式 往往會把資料庫的連線與表的開啟語句放在...