C++ exception
C++异常处理
异常无处不在,程序随时可能误入歧途!C++ 提出了新的异常处理机制!
异常是一种程序控制机制,与函数机制互补
函数是一种以栈结构展开的上下函数衔接的程序控制系统,异常是另一种控制结构,它可以在出现“意外”时中断当前函数,并以某种机制(类型匹配)回馈给隔代的调用者相关的信息.
传统错误处理机制
通过函数返回值来处理错误
|
C++异常处理基本语法
异常发生第一现场,抛出异常
void function( ){ |
在需要关注异常的地方,捕捉异常
try{ |
C++之中有一些已经定义好的异常类型

std::exception:该异常是所有标准 C++ 异常的父类。std::bad_alloc:该异常可以通过new抛出。std::bad_cast:该异常可以通过dynamic_cast抛出。std::bad_typeid:该异常可以通过typeid抛出。std::bad_exception:这在处理 C++ 程序中无法预期的异常时非常有用。std::logic_error:理论上可以通过读取代码来检测到的异常。std::domain_error:当使用了一个无效的数学域时,会抛出该异常。std::invalid_argument:当使用了无效的参数时,会抛出该异常。std::length_error:当创建了太长的std::string时,会抛出该异常。std::out_of_range:该异常可以通过方法抛出,例如std::vector和std::bitset<>::operator。std::runtime_error:理论上不可以通过读取代码来检测到的异常。std::overflow_error:当发生数学上溢时,会抛出该异常。std::range_error:当尝试存储超出范围的值时,会抛出该异常。std::underflow_error:当发生数学下溢时,会抛出该异常。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 张振强的个人博客!