C++中的異常處理是處理運(yùn)行時(shí)錯(cuò)誤的過程。 我們執(zhí)行異常處理,以便即使在運(yùn)行時(shí)出現(xiàn)錯(cuò)誤后也能保持正常的應(yīng)用程序流轉(zhuǎn)。
在C++中,異常是在運(yùn)行時(shí)拋出的事件或?qū)ο蟆?所有異常都派生自std::exception類。 它是一個(gè)可以處理的運(yùn)行時(shí)錯(cuò)誤。 如果我們不處理異常,它就會(huì)打印異常消息并終止程序。
異常處理保持應(yīng)用程序的正常流轉(zhuǎn)。 在這種情況下,即使在異常之后仍執(zhí)行代碼的其余部分。
C++異常類
在C++中,標(biāo)準(zhǔn)異常在 exception 類中定義,我們可以在程序中(直接或繼承)使用它。 父子類層次結(jié)構(gòu)的排列如下所示:

C++中的所有異常類都是從std::exception類派生的。 下面來看看看C++常見異常類的列表。
| 異常 | 描述 |
|---|---|
std::exception |
它是所有標(biāo)準(zhǔn)C++異常的異常和父類。 |
std::logic_failure |
這是一個(gè)異常,可以通過讀取代碼來檢測(cè)。 |
std::runtime_error |
這是一個(gè)異常,不能通過讀取代碼來檢測(cè)。 |
std::bad_exception |
|
std::bad_cast |
這個(gè)異常通常由dynamic_cast拋出。 |
std::bad_typeid |
這個(gè)異常通常由typeid拋出。 |
std::bad_alloc |
這個(gè)異常通常由new拋出。 |
在C++中,我們使用3個(gè)關(guān)鍵字來執(zhí)行異常處理:
此外,還可以創(chuàng)建用戶定義的異常,在接下來的章節(jié)中學(xué)習(xí)。