# std::exception

< cpp‎ | error

定义于头文件 `<exception>` |  |
class exception; |  |

提供一致的接口，以通过 throw 表达式处理错误。

标准库所生成的所有异常继承自 std::exception

- `logic_error`

  - `invalid_argument`
  - `domain_error`
  - `length_error`
  - `out_of_range`
  - `future_error`(C++11)
  - `bad_optional_access`(C++17)

- `runtime_error`

  - `range_error`
  - `overflow_error`
  - `underflow_error`
  - `regex_error`(C++11)
  - `system_error`(C++11)
    - `ios_base::failure`(C++11)
    - `filesystem::filesystem_error`(C++17)
  - `nonexistent_local_time`(C++20)
  - `ambiguous_local_time`(C++20)
  - `tx_exception`(TM TS)
  - `format_error`(C++20)

- `bad_typeid`
- `bad_cast`

  - `bad_any_cast`(C++17)

- `bad_weak_ptr`(C++11)
- `bad_function_call`(C++11)
- `bad_alloc`

  - `bad_array_new_length`(C++11)

- `bad_exception`
- `ios_base::failure`(C++11 前)
- `bad_variant_access`(C++17)

### 成员函数

(构造函数) | 构造异常对象 (公开成员函数)
(析构函数) [虚] | 析构该异常对象 (虚公开成员函数)
operator= | 复制异常对象 (公开成员函数)
what [虚] | 返回解释性字符串 (虚公开成员函数)