异常类的头文件
异常类定义于许多头文件中。为了能够处理标准库可能抛出的所有异常,必须包含:
#include <exception> //for classes exception and bad_exception
#include<stdexcept> //for most logic and runtime error classes
#include <systemerror> //for system errors(since C++/l)
#include <new> //for out-of-memory exceptions
#include<ios> //for 1/O exceptions
#include <future> //for errors with async()and futures(since C++11)
#include<typeinfo> //for bad_cast and bad_typeid
标准的Exception Class(异常类)
所有被语言本身或标准库抛出的异常,都派生自基类exception,定义于<exception>。它是若干标准异常类的基类,它们共同形成一个类体系,如图4.1所示。这些标准异常类可被分为三组:
1.语言本身支持的异常 (如:类型转换时产生的异常)
2.C++标准库发出的异常
3.程序作用域(scope of a program)之外发出的异常
逻辑错误通常可以避免,因为其错误原因发生在程序作用域(scope of a program)内,例如先决条件被违反。运行期异常则是由一个位于程序作用域之外的原因触发,例如资源不足
来源:
c++ 标准库 2nd