错误处理和异常处理
- C++标准程序库由不同的成分构成,来源不同,设计与实现风格迥异。而错误处理和异常正是这种差异的一个典型体现。
- 例如string classes,支持具体的错误异常,它检查所有可能发生的错误,并于错误发生时抛出异常。
- 其他的STL和valarrays,效率重于安全,因此几乎不检验逻辑错误,并且只在执行期发生错误时才抛出异常。
标准异常类别
语言本身或标准程序库所抛出的所有异常,都派生自基类execption,它们构成了一个类体系。
异常的成员函数
namespace std{
class exception
{
public:
virtual const char * what() const throw();
...
};
}
常见的异常
- bad_alloc异常 当全局操作符new操作失败惠普,会抛出bad_alloc异常(若使用new的nothrow版本,另当别论)
- 这个异常可能于任何时间在任何 较复杂的程序中发生。
C++标准程序库