C++異常處理(較淺) 基本概念 異常處理,是編程語言或電腦硬體里的一種機制,用於處理軟體或信息系統中出現異常的情況,保證程式運行的穩定性和健壯性,防止程式崩潰。但是過渡使用會影響程式運行的效率。 把可能出現的問題放到try里,進行監控 throw前面的語句如果滿足,就拋出**(下麵的語句就不執行 ...
C++異常處理(較淺)
基本概念
異常處理,是編程語言或電腦硬體里的一種機制,用於處理軟體或信息系統中出現異常的情況,保證程式運行的穩定性和健壯性,防止程式崩潰。但是過渡使用會影響程式運行的效率。
把可能出現的問題放到try里,進行監控
throw前面的語句如果滿足,就拋出(下麵的語句就不執行了),拋出的變數或是其他稱為異常對象,
catch 捕獲try中可能出現的異常,catch(參數)這個參數只能捕獲一種類型的異常對象,如果要捕獲其他類型,則需要再寫一個catch語句
catch(...){ //...其他種類的異常(除了上面所寫的異常),放在最下麵,普遍捕獲
cout << "捕獲其他異常" << endl;
}
例子
面向結果編程(哈哈哈)
小於10輸出0;大於100輸出1;之間輸出“10 < a < 100”...
#include<iostream>
#include<string>
using namespace std;
int main(){
int a;
cout << "請輸入要測試的數字:";
cin >> a;
try{
if(a < 10) throw 0;
if(a > 100) throw 1;
throw "10 < a < 100";
}
catch(int a){
cout << a << endl;
}
catch(const char *str){
cout << (string)str << endl;
}
return 0;
}
當顯示出terminate called after throwing an instance of 'char const*',出現這種情況的原因就是在catch中異常並沒有匹配上去,C++的析構函數拋出異常將自動調用terminate()終止程式。
catch(const char *str) //加一個Cconst就可以了