C++ 标准的异常
C++ 提供了一系列標(biāo)準(zhǔn)的異常,定義在 <exception> 中,我們可以在程序中使用這些標(biāo)準(zhǔn)的異常。它們是以父子類層次結(jié)構(gòu)組織起來的,如下所示:
下表是對上面層次結(jié)構(gòu)中出現(xiàn)的每個(gè)異常的說明:
| std::exception | 該異常是所有標(biāo)準(zhǔn) C++ 異常的父類。 |
| std::bad_alloc | 該異??梢酝ㄟ^ new 拋出。 |
| std::bad_cast | 該異常可以通過 dynamic_cast 拋出。 |
| std::bad_exception | 這在處理 C++ 程序中無法預(yù)期的異常時(shí)非常有用。 |
| std::bad_typeid | 該異??梢酝ㄟ^ typeid 拋出。 |
| std::logic_error | 理論上可以通過讀取代碼來檢測到的異常。 |
| std::domain_error | 當(dāng)使用了一個(gè)無效的數(shù)學(xué)域時(shí),會(huì)拋出該異常。 |
| std::invalid_argument | 當(dāng)使用了無效的參數(shù)時(shí),會(huì)拋出該異常。 |
| std::length_error | 當(dāng)創(chuàng)建了太長的 std::string 時(shí),會(huì)拋出該異常。 |
| std::out_of_range | 該異??梢酝ㄟ^方法拋出,例如 std::vector 和 std::bitset<>::operator[]()。 |
| std::runtime_error | 理論上不可以通過讀取代碼來檢測到的異常。 |
| std::overflow_error | 當(dāng)發(fā)生數(shù)學(xué)上溢時(shí),會(huì)拋出該異常。 |
| std::range_error | 當(dāng)嘗試存儲(chǔ)超出范圍的值時(shí),會(huì)拋出該異常。 |
| std::underflow_error | 當(dāng)發(fā)生數(shù)學(xué)下溢時(shí),會(huì)拋出該異常。 |
?
總結(jié)
- 上一篇: 2021年中国GDP突破110万亿元 同
- 下一篇: 国务院办公厅关于2022年部分节假日安排