成人app

首頁  /  C++教程  /  C++標準異常處理類  /  

C++標準異常處理類

點擊打開在線編譯器,邊學邊練

C++給我們提供了標準的異常處理類,它用來拋出C++標準庫中函數執行時的異常。C++提供的標準異常類的層次結構如圖:

timg.jpg


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


舉例說明,如:

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

  2. 我們使用dynamic_cast()進行動態類型轉化失敗時,則拋出bad_typeid異常

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

  4. 我們在使用string類下標但越界時,則拋出out_of_range異常


成人app等等...等等... 請大家自行了解更多


成人app需要注意的是,使用C++自帶的標準異常類,需要包含對應的頭文件:


因為exception、bad_exception類在頭文件exception中定義

bad_alloc類在頭文件new中定義

成人appbad_typeid類在頭文件typeinfo中定義

成人appios_base::failure類在頭文件ios中定義

其他異常類在stdexcept中定義



下面,給大家展示如何使用C++標準異常類:

#include <iostream>
#include<new>
#include<stdexcept>
using namespace std;
//異常處理 
int main()
{
 	string *s;
 	try
 	{
 		s=new string("hnsaiyang.com");
 		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;
	
}


運行結果如下圖:

3.png


請大家自行上機試驗學習使用方法!


本文固定URL:http://hnsaiyang.com/course/85

上一課:C++異常處理機制
Dotcpp在線編譯      (登錄可減少運行等待時間)