Runtime Error

程序运行,抛出异常

Runtime Error_第1张图片

中断,查看调用堆栈,找出出错位置;


C++语言本身或标准程序库所抛出的所有异常,都派生自基类exception。

这些标准异常类别分为三组:

(1)语言本身所支持的异常

此类异常用以支撑某些语言特性。主要包括:
bad_alloc:new操作失败会抛出。
bad_cast:执行期间加在一个引用上面的动态性型别转换操作失败时抛出。
bad_typeid:执行RTTI时,交给typeid的参数为零或空指针时抛出
bad_exception:非预期的异常

(2)C++标准程序库发出的异常

总是派生自logic_error。逻辑错误是由于程序内部逻辑而导致的错误。逻辑错误是可以避免的,且在程序

开始执行之前,能够被检测到。

domain_error:专业领域内的范畴
invalid_argument:无效参数,比如讲bitset以char而非0或1进行初始化
length_error:可能超越了最大极限,比如对着某个字符串附加太多字符。
out_of_range:参数不再预期范围内。例如在诸如array的容器或字符串string中采用一个错误索引。

(3)程序作用域之外发出的异常

总是派生自runtime_error,用来指出“不在程序范围内,且不容易回避”的事件。此类错误只在程序执行

时才是可检测的。
range_error:内部计算时发生区间错误
overflow_error:算数运算时发生上溢
underflow_error:算数运算时发生下溢

参考:http://www.dewen.org/q/8659

你可能感兴趣的:(异常,c++,异常)