異常:程式在執行時發生的特殊情況。無法在編譯階段被識別出來,一般的c++錯誤在程式編譯時就會被識別並丟擲。
throw:發生異常時由throw丟擲。
try:try中用於書寫發生異常的**段
catch:catch()捕捉特定型別的異常,對異常進行一定的處理。
char const *型別的異常
/*
異常的使用
*/#include
using
namespace std;
#include
intabc
(int a,
int b,
int c)
return a + b * c;
}int
main()
catch
(char
const
* e)
return0;
}
int 型的異常
/*
《資料結構、演算法與應用 c++語言描述》
page 8 第10題
*/#include
using
namespace std;
intabc
(int a,
int b,
int c)
else
if(a==
0&& b==
0&& c==0)
return a + b * c;
}int
main()
catch
(int e)
//例項2:輸出 bomb!! exception1
trycatch
(int e)
//例項3:輸出 2
trycatch
(int e)
return0;
}
/*
乙個簡單的異常類---物件導向的設計
*/#include
using
namespace std;
#include
//引數異常類
class
illegalparametervalue
illegalparametervalue
(char
* themessage)
void
output()
private
: string message;};
//功能函式
intabc
(int a,
int b,
int c)
else
if(a==
0&& b==
0&& c==0)
return a + b * c;
}//main函式中測試
intmain()
catch
(illegalparametervalue e)
//例項2:輸出 illegal parameter value
trycatch
(illegalparametervalue e)
//例項3:輸出 2
trycatch
(illegalparametervalue e)
return0;
}
《資料結構、演算法與應用 c++語言描述》第二版一書中(p7、p8)給出了如下型別的**:
#include
using
namespace std;
#include
intabc
(int a,
int b,
int c)
return a + b * c;
}int
main()
catch
(char
* e)
return0;
}
書中說這個程式丟擲的異常型別是char*,但在執行時出現了如下情況(terminate called after throwing an instance of 『char const*』):
顯然程式出現了乙個char const* 型別的異常,及通過throw " "丟擲的異常是char const* 型別的,而不是char* 型別的。具體原因我也不清楚,難道是編譯器的原因???
c++指標使用詳解可能會對你理解char* 與char const* 甚至是const char *的區別有所幫助。
Python 異常處理使用方法
常見的錯誤型別 常見錯誤 exception 常規錯誤的基類 attributeerror 物件沒有這個屬性 eoferror 沒有內建輸入,到達eof標記 importerror 匯入模組 物件失敗 indexerror 序列中沒有此索引 keyerror 對映中沒有這個鍵 memoryerror...
pymysql的使用簡單使用方法
1.安裝方法 pip安裝 pip install pymysql anaconda安裝 conda install c anaconda pymysql 2.pymysql執行流程 3.匯入模組 from pymysql import 4.例項 import pymysql 連線資料庫 db pym...
BART 的簡單使用方法
bart是在檔案系統級的檔案跟蹤工具。使用bart工具使你能快速 容易和可靠地得到系統中的軟體構成資訊。使用bart能很大程度地減少網路系 統的管理成本。bart能夠在目標系統軟體目錄的檔案層執行檢查操作。該實用程式可用於收集有關系統已安裝了哪些內容的資訊。bart還使你能夠對已安裝 的系統及系統內...