简介
C++ 中的异常主要分为两大类:
- runtime_error
- 程序在运行时出现的异常
- logic_error
- 程序本身的逻辑错误,例如函数入参不对
它们都派生自 std::exception
.
- 主要有构造函数(接受
const std::string&
和const char*
) what()
函数返回当前异常的可描述信息
Google code style 是不建议使用的, 这个可能主要是因为他们很多代码都没有基于异常机制写。
异常声明
异常捕获
- 如何捕获异常
- 捕获异常时有哪些注意点
函数提供的保证
- 函数提供哪些保证
- 出现异常时怎么处理:
- 构造函数: 出现异常时,如果异常被捕获了,则所有已经构造好的成员对象会被析构,否则这个是实现
相关的,即由实现来决定是否调用相关的析构函数,还是直接
std::terminated
- 析构函数: 不允许出现异常,否则:
std::terminated
- 构造函数: 出现异常时,如果异常被捕获了,则所有已经构造好的成员对象会被析构,否则这个是实现
相关的,即由实现来决定是否调用相关的析构函数,还是直接
- 改变异常处理流程的函数
- set_unexpected
- set_terminated
- set_new_handler
本文完