久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > 嵌(qian)入(ru)式學習筆記:C++ 異常及處理(li)詳(xiang)解,都(dou)是重點(dian)

嵌入(ru)式學習筆記:C++ 異(yi)常(chang)及(ji)處理詳解(jie),都是重點(dian) 時間:2018-09-05      來源:未知(zhi)

C高級是(shi)學習C的(de)進(jin)階階段,而且對(dui)于(yu)c高級來說,c++異常(chang)也是(shi)必須要學習的(de),而且對(dui)于(yu)c++異常(chang)來說有很多(duo)種,是(shi)需要自己(ji)好(hao)(hao)好(hao)(hao)研究的(de),在(zai)這里對(dui)c++異常(chang)做了詳細的(de)了解,希望(wang)對(dui)你(ni)也是(shi)有用的(de)。

C++ 異常處(chu)理

異常(chang)是(shi)程(cheng)序在(zai)執(zhi)行(xing)期間產生的問題。C++ 異常(chang)是(shi)指在(zai)程(cheng)序運行(xing)時發生的特殊(shu)情(qing)況,比如嘗試除以零(ling)的操作。

異常(chang)提(ti)供(gong)了(le)一種轉(zhuan)移程序控制權的方式。C++ 異常(chang)處(chu)理(li)涉及到三個關鍵字:try、catch、throw。

throw: 當(dang)問題出(chu)現(xian)時(shi),程序(xu)會拋出(chu)一個異常。這是通(tong)過使用 throw 關(guan)鍵(jian)字來(lai)完成的。

catch: 在您想(xiang)要處(chu)理問題的地方,通(tong)過異常(chang)處(chu)理程序捕獲(huo)異常(chang)。catch 關鍵字用(yong)于捕獲(huo)異常(chang)。

try: try 塊中的(de)代碼標識將被激活的(de)特定(ding)異常(chang)。它后面(mian)通(tong)常(chang)跟著一個(ge)或(huo)多個(ge) catch 塊。

如果有(you)一(yi)個(ge)塊(kuai)拋出一(yi)個(ge)異常(chang),捕獲異常(chang)的方法(fa)會(hui)使

用 try 和 catch 關鍵(jian)字(zi)。try 塊(kuai)中放置可能拋出(chu)異常的(de)代碼(ma),try 塊(kuai)中的(de)代碼(ma)被稱為保護代碼(ma)。使用 try/catch 語(yu)句的(de)語(yu)法如下所(suo)示:

try

{

/ 保(bao)護代碼

}catch( ExceptionName e1 )

{

// catch 塊

}catch( ExceptionName e2 )

{

// catch 塊

}catch( ExceptionName eN )

{

// catch 塊

}

如果 try 塊在不同的情境下會拋出不同的異(yi)常,這個時候可以(yi)嘗試羅列多個 catch 語(yu)句,用于捕獲不同類型的異(yi)常。

拋出異常

您可以(yi)使用 throw 語句(ju)在代碼塊中(zhong)的任(ren)何地方(fang)拋出異常(chang)。throw 語句(ju)的操(cao)作數可以(yi)是任(ren)意的表(biao)達(da)式,表(biao)達(da)式的結果(guo)的類型決定了拋出的異常(chang)的類型。

以下是嘗試(shi)除以零時拋出異常(chang)的實例:

double division(int a, int b)

{

if( b == 0 )

{

throw "Division by zero condition!";

}

return (a/b);

}

捕獲異常

catch 塊跟在 try 塊后面,用于捕獲異(yi)常(chang)。您可以指(zhi)定(ding)想要(yao)捕捉的(de)異(yi)常(chang)類型,這是由 catch 關(guan)鍵字后的(de)括號內的(de)異(yi)常(chang)聲明(ming)決(jue)定(ding)的(de)。

try

{

/ 保護(hu)代碼(ma)

}catch( ExceptionName e )

{

// 處理 ExceptionName 異常的代碼

}

上面的(de)代碼會捕獲一個(ge)類型(xing)為 ExceptionName 的(de)異常。如果您想

 讓 catch 塊能夠處理 try 塊拋(pao)出的任何類型的異(yi)(yi)常(chang),則必須在異(yi)(yi)常(chang)聲(sheng)明的括號內使用省略號 ...,如下所示:

try

{

/ 保護代碼(ma)

}catch(...)

{

/ 能處理任何異常的(de)代碼

}

C++ 標準的異常

C++ 提供(gong)了一(yi)系列(lie)標準的異常(chang)(chang),定義在 中,我們可以在程序中使(shi)用這些(xie)標準的異常(chang)(chang)。它們是(shi)以父子類(lei)層次(ci)結構組織起來(lai)的,如(ru)下所示:

C++ 異(yi)常的(de)層次結構

下表是對上面層次結構(gou)中出現的每個(ge)異常的說(shuo)明:

定義新的異常

您可以通過繼承(cheng)和重載 exception 類來(lai)定(ding)義新的異(yi)常。下面的實例(li)演示了(le)如何使用(yong) std::exception 類來(lai)實現自己(ji)的異(yi)常:

實例

#include

#include

using namespace std;

struct MyException : public exception

{

const char * what () const throw ()

{

return "C++ Exception";

}

int main()

{

try

{

throw MyException();

}

catch(MyException& e)

{

std::cout << "MyException caught" << std::endl;

std::cout << e.what() << std::endl;

}

catch(std::exception& e)

{

//其他的錯誤

}

}

上一篇:嵌入式學習筆記:類與封裝基礎入門知識分享

下一篇:嵌入式學習筆記:c++文件操作由淺入深,讓你理解透徹

熱點(dian)文章推薦
華清學員就業榜單
高薪(xin)學(xue)員(yuan)經驗(yan)分享
熱點新聞推薦
前(qian)臺專線:010-82525158 企業培(pei)訓(xun)洽(qia)談專線:010-82525379 院(yuan)校合(he)作洽談專(zhuan)線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部