两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

C++給我們提供了標(biāo)準(zhǔn)的異常處理類,它用來拋出C++標(biāo)準(zhǔn)庫中函數(shù)執(zhí)行時的異常。C++提供的標(biāo)準(zhǔn)異常類的層次結(jié)構(gòu)如圖:

C++標(biāo)準(zhǔn)異常exception處理類


可以看到,所有的異常類都繼承自exception基類,exception類下的logic_error和runtime_error又是兩個比較大類,包含有多個自類,它們分表代表邏輯類錯誤運行時錯誤。


舉例說明,如:

1. 我們使用new開辟內(nèi)存時,如果遇到空間不足,則會拋出bad_alloc異常。

2. 我們使用dynamic_cast()進行動態(tài)類型轉(zhuǎn)化失敗時,則拋出bad_typeid異常。

3. 我們在計算數(shù)值超過該類型表示的最大范圍時,則拋出overflow_error異常,表示運算上溢,同理,underflow_error表示運算下溢。

4. 我們在使用string類下標(biāo)但越界時,則拋出out_of_range異常。

等等...等等... 請大家自行了解更多。


需要注意的是,使用C++自帶的標(biāo)準(zhǔn)異常類,需要包含對應(yīng)的頭文件,因為exception、bad_exception類在頭文件exception中定義,bad_alloc類在頭文件new中定義,bad_typeid類在頭文件typeinfo中定義,ios_base::failure類在頭文件ios中定義,其他異常類在stdexcept中定義。


下面,給大家展示如何使用C++標(biāo)準(zhǔn)異常類

#include <iostream>
#include<new>
#include<stdexcept>
using namespace std;
//異常處理 
int main()
{
 	string *s;
 	try
 	{
 		s=new string("www.sztianhecheng.cn");
 		cout<<s->substr(15,5);
	 }
	 catch(bad_alloc &t)
	 {
	 	cout<<"Exception occurred:"<<t.what()<<endl;
	 }
	 catch(out_of_range &t)
	 {
	 	cout<<"Exception occurred:"<<t.what()<<endl;
	 }
	return 0;
	
}


運行結(jié)果如下圖:

C++標(biāo)準(zhǔn)異常exception處理類


請大家自行上機試驗學(xué)習(xí)使用方法!


點贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運行等待時間)