1 c++異常型別通常用類(class)實現。
2 捕獲異常
trythrout (yyy)
}catch(***)
其中catch內容可能是:
2.11 單個異常類型別, 對應的yyy是型別名
2.2 單個物件宣告,對應的應該是***型別的某個物件
2.3 .... 表示能捕獲所有的可能異常。
3 捕獲異常
c++的異常處理是不可恢復的:一旦異常被處理,就不可以在丟擲異常的地縫繼續處理
4 異常物件
如果異常處理需要處理異常中報錯的資料,就必須使用上述2.2方式丟擲:
異常物件總是在拋出點被建立的,異常丟擲語句同異常處理語句類似與函式呼叫的方式:
tryclassa exp;
throw exp;
}catch (classa e)
e.***();
物件e使用exp進行初始化,當然也可以使用引用的方式,比如 catch (class & e);
5 異常棧展開
如果當前層次的函式沒有catch到這個異常,則查詢上乙個層次的catch,這個過程叫做棧展開。
6 重新丟擲
如果當前catch 不能完全處理該異常,需要再次呼叫throw,向上一層次呼叫棧重新丟擲。
7 異常規範
1 異常宣告
class istack{
void pop(int &value) throw(poponempty);
void push(int value) throw(pushonfull);
表明pop不會丟擲除了宣告的之外的任何異常。
void pop(int &value) throw()表明不會丟擲任何異常
void pop(int &value) ;表明可能會丟擲任何異常
2 異常規範宣告的事介面的一部分,同函式型別強繫結
3異常宣告錯誤可能只在執行時發現,比如丟擲乙個不被允許的異常,編譯器不會察覺。所以具有一定危險。
8 關於 錯誤如何變成異常 關鍵點是什麼是一種意外情況
如果該庫希望用在不會崩潰的程式裡(好像通訊系統都不希望自己崩潰),那麼該庫就必須自己處理問題,如果自己不能處理,則通知庫的使用者來處理。
這個好像當前系統都是這麼做的。
Python基礎11 異常處理
異常 當使用python直譯器去執行 的時候遇見了錯誤 在控制台輸出錯誤資訊 遇到異常會終止執行 name 張三 name 10 報錯 異常的捕獲 try 裡面的 如果遇見了異常,那麼不會執行try裡面的語句 try num1 input 輸入乙個數字 num2 input 輸入乙個數字 resul...
python 物件導向 11 異常
程式開發時,很難將所有的特殊情況都處理的面面俱到,通過異常捕獲可以針對突發事件做集中的處理,從而保證程式的穩定性和健壯性 try 嘗試執行的 except 出現錯誤的處理 簡單異常捕獲演練 要求使用者輸入整數try 提示使用者輸入乙個數字 num int input 請輸入數字 except pri...
python 11 反射與異常
反射與異常加上類似於反射的檔案的操作都將在下面以 的形式體現。一,反射 coding utf 8 usr bin env python3 author book miki 主要學習 getattr setattr hasattr delattr defbulk self print s wangwa...