C++标准库定义了一组类,用于报告在标准库中的函数遇到的问题。程序员可在自己编写的程序中使用这些标准异常类。标准库异常类定义在四个头文件中:
(1)<exception>头文件定义了最常见的异常类,它的类名是exception。这个类只通知异常的产生,但不会提供更多的信息。
(2)<stdexcept>头文件定义了几种常见的异常类。这些类型在表1中列出。
(3)<new>头文件定义了bad_alloc异常类型,提供因无法分配内存而由new抛出的异常。
(4)<type_info>头文件定义了bad_cast异常类型。
exception | 最常见的问题 |
runtime_error | 运行时错误:仅在运行时才能检测到的问题 |
range_error | 运行时错误:生成的结果超出了有意义的值域范围 |
overflow_error | 运行时错误:计算上溢 |
underflow_error | 运行时错误:计算下溢 |
logic_error | 逻辑错误:可在运行前检测到的问题 |
domain_error | 逻辑错误:参数的结果值不存在 |
invalid_error | 逻辑错误:不合适的参数 |
length_error | 逻辑错误:试图生成一个超出该类型最大长度的对象 |
out_of_range | 逻辑错误:使用一个超出有效范围的值 |
—— 摘自《C++ Primer》(中文第4版) P189
标准exception类层次