最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++學(xué)習(xí)筆記之淺談異常處理

 更新時間:2021年10月20日 15:21:20   作者:彧圓  
C++ 提供了異常機制,讓我們能夠捕獲運行時錯誤,本文就詳細的介紹了C++異常處理入門,具有一定的參考價值,感興趣的小伙伴們可以參考一下

異常處理主要是針對能通過編譯但是運行是在某個特定條件下會出現(xiàn)異常,程序崩潰,結(jié)果出錯。來進行的東西

C++處理異常的機制是由3個部分組成的,即檢查(try)、拋出(throw)和捕捉(catch)。把需要檢查的語句放在try塊中,throw用來當(dāng)出現(xiàn)異常時發(fā)出一個異常信息,而catch則用來捕捉異常信息,如果捕捉到了異常信息,就處理它。

try {被檢查的語句}

catch(異常信息類型 [變量名])

{進行異常處理的語句}

粘一個簡單的異常處理的題:

如果三角形滿足三角形內(nèi)角和大于第三邊才會有輸出,否則進行異常處理。

#include<iostream>
using namespace std;
int main()
{
	double triangler(double a, double b, double c);
	{
		double a, b, c;
		cin >> a >> b >> c;
		try                                //在try塊中包含要檢查的函數(shù)
		{
			while (a > 0 && b > 0 && &c > 0)
			{
				cout << triangler(a, b, c) << endl;	
				cin >> a >> b >> c;
			}
		}
		//catch (double)								//只能拋出對應(yīng)類型的異常
		//{
		//	{cout << "a=" << a << ",b=" << b << ",c=" << c << ",that is not a triangler!" << endl; }
		//	cout << "end" << endl;
		//}
		catch (...)										//”...“代表可以拋出任何類型的異常
		{
			{cout << "a=" << a << ",b=" << b << ",c=" << c << ",that is not a triangler! it is all typical!" << endl; }
			cout << "end" << endl;
		}
	}
}
double triangler(double a, double b, double c)
{
	double s = (a + b + c) / 2;
	if (a + b <= c || a + c <= b || b + c <= a) throw a;		//拋出異常對象
		return sqrt(s * (s - a) * (s - b) * (s - c));
}

1.在主函數(shù)中添加需要檢查的語句或者程序段到try語句下;如果運行到try區(qū)域出現(xiàn)異常 則會拋出一個throw,然后返回上一級程序。在進行異常處理后,程序并不會自動終止,繼續(xù)執(zhí)行catch子句后面的語句。若是沒有發(fā)現(xiàn)異常,直接跳到catch以后的程序

2.throw拋出的數(shù)據(jù)類型又人們自己來定義,catch(后的括號有什么數(shù)據(jù)類型則會檢查什么數(shù)據(jù)類型的錯誤),如果比較懶的花括號里寫三個點(...)代表所有類型

3.try catch結(jié)構(gòu)可以與throw不在一起,甚至不在一個函數(shù)里。如果throw出一個異常,throw 會首先在本函數(shù)里找try catch函數(shù)如果找不到則會采取就近原則。

4.可以單獨出現(xiàn)try,但不能單獨出現(xiàn)catch

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • c++調(diào)用動態(tài)庫LNK2019和LNK1120無法解析的外部命令

    c++調(diào)用動態(tài)庫LNK2019和LNK1120無法解析的外部命令

    本文主要介紹了c++調(diào)用動態(tài)庫LNK2019和LNK1120無法解析的外部命令, 出現(xiàn)這個錯誤一般都是函數(shù)只找到聲明但沒有實現(xiàn),或者是少了什么鏈接庫,下面就來解決一下
    2024-06-06
  • C++運算符重載實例代碼詳解(調(diào)試環(huán)境 Visual Studio 2019)

    C++運算符重載實例代碼詳解(調(diào)試環(huán)境 Visual Studio 2019)

    這篇文章主要介紹了C++運算符重載實例(調(diào)試環(huán)境 Visual Studio 2019),本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • VC枚舉串口端口應(yīng)用

    VC枚舉串口端口應(yīng)用

    這篇文章主要介紹了VC枚舉串口端口應(yīng)用,羅列了常見的一些串口端口的應(yīng)用實例,需要的朋友可以參考下
    2014-10-10
  • C++實現(xiàn)LeetCode(190.顛倒二進制位)

    C++實現(xiàn)LeetCode(190.顛倒二進制位)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(190.顛倒二進制位),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語言控制臺實現(xiàn)打飛機小游戲

    C語言控制臺實現(xiàn)打飛機小游戲

    這篇文章主要為大家詳細介紹了C語言控制臺實現(xiàn)打飛機小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語言中互斥鎖與自旋鎖及原子操作使用淺析

    C語言中互斥鎖與自旋鎖及原子操作使用淺析

    今天不整GO語言,我們來分享一下以前寫的C語言代碼,來看看互斥鎖、自旋鎖和原子操作的demo,示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值
    2023-01-01
  • C++Lambda表達式詳解

    C++Lambda表達式詳解

    這篇文章主要介紹了C++中的Lambda表達式詳解,本文講解了基本語法、Lambda的使用等內(nèi)容,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • c語言中的局部跳轉(zhuǎn)及全局跳轉(zhuǎn)功能

    c語言中的局部跳轉(zhuǎn)及全局跳轉(zhuǎn)功能

    本文介紹了C語言中的goto語句,以及如何使用setjmp和longjmp實現(xiàn)跨函數(shù)的跳轉(zhuǎn),詳細講解了setjmp和longjmp的使用方法和注意事項,以及使用這種全局跳轉(zhuǎn)后變量狀態(tài)的不確定性,感興趣的朋友一起看看吧
    2024-09-09
  • C語言樹與二叉樹基礎(chǔ)全刨析

    C語言樹與二叉樹基礎(chǔ)全刨析

    二叉樹可以簡單理解為對于一個節(jié)點來說,最多擁有一個上級節(jié)點,同時最多具備左右兩個下級節(jié)點的數(shù)據(jù)結(jié)構(gòu)。本文將詳細介紹一下C中二叉樹與樹的概念和結(jié)構(gòu),需要的可以參考一下
    2022-04-04
  • C++ virtual destructor虛擬析構(gòu)函數(shù)

    C++ virtual destructor虛擬析構(gòu)函數(shù)

    C++中基類采用virtual虛析構(gòu)函數(shù)是為了防止內(nèi)存泄漏。具體地說,如果派生類中申請了內(nèi)存空間,并在其析構(gòu)函數(shù)中對這些內(nèi)存空間進行釋放,今天通過本文給大家介紹C++ virtual destructor虛擬析構(gòu)函數(shù)的相關(guān)知識,感興趣的朋友一起看看吧
    2021-05-05

最新評論

浦东新区| 翼城县| 长白| 巴彦淖尔市| 祁连县| 马尔康县| 兴国县| 道孚县| 阳原县| 柳河县| 彭泽县| 澄迈县| 正安县| 麻栗坡县| 西贡区| 吐鲁番市| 张北县| 蒙山县| 中山市| 连平县| 无棣县| 伊春市| 星座| 陕西省| 将乐县| 依兰县| 固安县| 宕昌县| 毕节市| 朔州市| 台州市| 大城县| 临泉县| 门头沟区| 白河县| 新田县| 通榆县| 肇州县| 齐河县| 邵东县| 珲春市|