異常機制:
//terminate-->abort(); 終止進程
↓
set_terminate(Myterminate);
//terminate-->Myterminate-->abort(); 終止進程
catch(...)
{
cout << "Divsion by zero other" << endl;
}
throw:
①throw可以拋內置類型異常也可以拋自定義類型異常
②throw拋出自定義類型對象的異常時會調用拷貝構造函數 后面會銷毀兩次
不會出現棧展開:拋出一個臨時對象時
throw MyException("MyException"); 平時應拋臨時對象
③一場發生之前創建的局部對象被銷毀----棧展開
捕獲異常時,派生類要在基類上面
void *要放在后面
不要拋指針異常----->會造成淺拷貝
新聞熱點
疑難解答