任何程序都難保會出現邏輯錯誤或運行異常。c++語言有專門的語句支持異常處理,從而使程序易于測試和處理錯誤。
在原來c語言面向過程的程序設計中,用if.....else....語句也可以處理出現的異常。在面向對象的程序設計中,顯然要改變
這種方法。
在c++中用try,throw和catch語句來處理異常。(它們可以是語句,也可以是語句塊。)try語句用來定義異常,包含有
可能產生異常的語句。throw語句是拋擲異常,當它檢測到異常,則拋擲它。catch語句是異常處理語句,當異常被傳遞過來時,catch
捕獲到它進而處理它。catch語句需要有形參類型。若tacth語句中需要形參,則需要形式參數,否則形式參數可有可無。但它是
嚴格匹配的。如果找不到與之匹配的catch語句,則程序調用abort()函數終止程序。
其使用大致如下:
......
try{
.....
throw a;
.....}
.....
catch(int a)
{.....}
可以有多個throw語句,每個throw語句拋擲的類型都要不同;對應的可以有多個catch語句,每個catch語句的形參類型不同,它們的形參
與throw是相對應的。需要特別注意:catch的形參類型是嚴格匹配的。如:
........
try{
int a=20;
.....
throw a;
}
......
catch(unsigned int)
{.......
}
.........
throw 和catch是不匹配的。
注意:1.try語句前不能出現catch語句。
2.拋擲語句throw與處理異常的catch語句可以出現在不同的函數中。但執行時,應是先執行throw,再執行catch語句。
3.在程序中可以出現多路捕獲。