STL学习笔记 ---- 异常

作者: winterTTr (转载请注明)  资料来源:《STL标准库》

 

 

 

  1. 标准异常类

  2. stl exception graph

     

     

  3. 为了语言支持而使用的异常类
    • bad_alloc :在new失败的时候,被抛出(除非使用nothrow版本的new)
    • bad_cast  :在使用dynamic_cast转换“引用类型”失败的时候抛出
    • bad_typeid:如果传给typeid操作符的是0或者空指针时抛出
    • bad_exception:用来处理未期望的异常出现的情况,使用unexpected()函数进行相应。当函数抛出其异常声明类表中未声明的异常类型时unexpected()函数会被调用
  4. 为了标准库使用的异常类

    这些异常类,基本上都是从logic_error继承而来的,理论上讲,这些异常都能够在一定程度上被避免。

    • invalid_argument无效的参数
    • length_error 长度错误,例如向字符串添加了太多的字符
    • out_of_range 超出边界,例如:访问随机访问对象时索引超出最大size
    • domain_error域名错误
    • ios_base::failure专门用于I/O的问题,例如:当一个流因为错误或者文件结尾而改变状态的时候
  5. 编程范围之外的异常类
  6. 这些类通常继承自runtime_error,例如:range_error,overflow_error,underflow_error

     

  7. 标准库抛出的异常
  8. 一般来说,标准库本身可能会抛出下面这几种异常range_error,out_of_range,invalid_argument。当然不排除某些库自己实现的其他异常。

     

     

  9. 异常对应的头文件
  10. <exception>             bad_exception,exception

    <new>                      bad_alloc

    <typeinfo>               bad_cast,bad_typeid

    <ios>                       ios_base::failure

    <stdexcept>             其他的异常类

     

     

     

     

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值