您好,登錄后才能下訂單哦!
現(xiàn)如今使用計(jì)算機(jī)的人越來越多,從事計(jì)算機(jī)行業(yè)的人也與日俱增,那么從事計(jì)算機(jī)行業(yè)的第一個(gè)就要接觸的就是c++語言的,作為最基礎(chǔ)的入門級語言,關(guān)于它的異常處理您知道多少呢,跟隨小編的文章一起看看吧。
https://www.macz.com/mac/1151.html
C++ 異常處理
異常是程序在執(zhí)行期間產(chǎn)生的問題。C++ 異常是指在程序運(yùn)行時(shí)發(fā)生的特殊情況,比如嘗試除以零的操作。
異常提供了一種轉(zhuǎn)移程序控制權(quán)的方式。C++ 異常處理涉及到三個(gè)關(guān)鍵字: try、catch、throw。
如果有一個(gè)塊拋出一個(gè)異常,捕獲異常的方法會使用 try 和 catch 關(guān)鍵字。try 塊中放置可能拋出異常的代碼,try 塊中的代碼被稱為保護(hù)代碼。使用 try/catch 語句的語法如下所示:
如果 try 塊在不同的情境下會拋出不同的異常,這個(gè)時(shí)候可以嘗試羅列多個(gè) catch 語句,用于捕獲不同類型的異常。
您可以使用 throw 語句在代碼塊中的任何地方拋出異常。throw 語句的操作數(shù)可以是任意的表達(dá)式,表達(dá)式的結(jié)果的類型決定了拋出的異常的類型。
以下是嘗試除以零時(shí)拋出異常的實(shí)例:
catch 塊跟在 try 塊后面,用于捕獲異常。您可以指定想要捕捉的異常類型,這是由 catch 關(guān)鍵字后的括號內(nèi)的異常聲明決定的。
上面的代碼會捕獲一個(gè)類型為 ExceptionName 的異常。如果您想讓 catch 塊能夠處理 try 塊拋出的任何類型的異常,則必須在異常聲明的括號內(nèi)使用省略號 ...,如下所示:
下面是一個(gè)實(shí)例,拋出一個(gè)除以零的異常,并在 catch 塊中捕獲該異常。
由于我們拋出了一個(gè)類型為 const char* 的異常,因此,當(dāng)捕獲該異常時(shí),我們必須在 catch 塊中使用 const char*。當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會產(chǎn)生下列結(jié)果:
Division by zero condition!
C++ 提供了一系列標(biāo)準(zhǔn)的異常,定義在 中,我們可以在程序中使用這些標(biāo)準(zhǔn)的異常。它們是以父子類層次結(jié)構(gòu)組織起來的,如下所示:
您可以通過繼承和重載 exception 類來定義新的異常。下面的實(shí)例演示了如何使用 std::exception 類來實(shí)現(xiàn)自己的異常:
這將產(chǎn)生以下結(jié)果:
在這里, what() 是異常類提供的一個(gè)公共方法,它已被所有子異常類重載。這將返回異常產(chǎn)生的原因。
希望小編的分享能夠幫助到您,了解更多Mac編程軟件教程,盡在macz.com!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。