欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

異常處理主要是針對(duì)能通過(guò)編譯但是運(yùn)行是在某個(gè)特定條件下會(huì)出現(xiàn)異常,程序崩潰,結(jié)果出錯(cuò)。來(lái)進(jìn)行的東西

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

try {被檢查的語(yǔ)句}

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

{進(jìn)行異常處理的語(yǔ)句}

粘一個(gè)簡(jiǎn)單的異常處理的題:

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

#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)								//只能拋出對(duì)應(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;		//拋出異常對(duì)象
		return sqrt(s * (s - a) * (s - b) * (s - c));
}

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

2.throw拋出的數(shù)據(jù)類型又人們自己來(lái)定義,catch(后的括號(hào)有什么數(shù)據(jù)類型則會(huì)檢查什么數(shù)據(jù)類型的錯(cuò)誤),如果比較懶的花括號(hào)里寫三個(gè)點(diǎn)(...)代表所有類型

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

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

總結(jié)

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

相關(guān)文章

  • C++重載運(yùn)算符你真的了解嗎

    C++重載運(yùn)算符你真的了解嗎

    這篇文章主要為大家詳細(xì)介紹了C++重載運(yùn)算符,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • OpenCV圖像算法實(shí)現(xiàn)圖像切分圖像合并示例

    OpenCV圖像算法實(shí)現(xiàn)圖像切分圖像合并示例

    這篇文章主要為大家介紹了python圖像算法OpenCV實(shí)現(xiàn)圖像切分圖像合并操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • C語(yǔ)言鏈表實(shí)現(xiàn)工資管理系統(tǒng)

    C語(yǔ)言鏈表實(shí)現(xiàn)工資管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言鏈表實(shí)現(xiàn)工資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C++ 指向類成員的指針

    C++ 指向類成員的指針

    指向類成員的指針總的來(lái)講可以分為兩大類四小類(指向數(shù)據(jù)成員還是成員函數(shù),指向普通成員還是靜態(tài)成員)
    2020-03-03
  • 舉例講解C語(yǔ)言鏈接器的符號(hào)解析機(jī)制

    舉例講解C語(yǔ)言鏈接器的符號(hào)解析機(jī)制

    鏈接器的工作主要分為兩個(gè)階段:符號(hào)解析和重定位,符號(hào)解析的功能是將每個(gè)模塊符號(hào)引用綁定到一個(gè)確切的符號(hào)定義,這里我們就來(lái)舉例講解C語(yǔ)言鏈接器的符號(hào)解析機(jī)制
    2016-05-05
  • C語(yǔ)言之實(shí)現(xiàn)棧的基礎(chǔ)創(chuàng)建

    C語(yǔ)言之實(shí)現(xiàn)棧的基礎(chǔ)創(chuàng)建

    這篇文章主要介紹了C語(yǔ)言之實(shí)現(xiàn)棧的基礎(chǔ)創(chuàng)建,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Linux下C語(yǔ)言實(shí)現(xiàn)C/S模式編程

    Linux下C語(yǔ)言實(shí)現(xiàn)C/S模式編程

    這篇文章主要為大家詳細(xì)介紹了Linux下C語(yǔ)言實(shí)現(xiàn)C/S模式編程的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • C++文件相關(guān)函數(shù)CreateFile|ReadFile|WriteFile用法詳解

    C++文件相關(guān)函數(shù)CreateFile|ReadFile|WriteFile用法詳解

    這篇文章主要為大家詳細(xì)介紹了c++有關(guān)文件創(chuàng)建、讀取和寫入的api:CreateFile、ReadFile、WriteFile的具體使用,需要的可以參考下
    2023-04-04
  • 給C語(yǔ)言初學(xué)者的學(xué)習(xí)建議

    給C語(yǔ)言初學(xué)者的學(xué)習(xí)建議

    在本篇文章里小編給大家分享的是關(guān)于C語(yǔ)言學(xué)習(xí)建議的相關(guān)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-06-06
  • C++實(shí)現(xiàn)折半查找

    C++實(shí)現(xiàn)折半查找

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)折半查找,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評(píng)論