分享

STL学习笔记

 Fredanf 2013-04-22
  • 标准异常类

  • stl exception graph

     

     

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

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

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

     

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

     

     

  • 异常对应的头文件
  • <exception>             bad_exception,exception

    <new>                      bad_alloc

    <typeinfo>               bad_cast,bad_typeid

    <ios>                       ios_base::failure

    <stdexcept>             其他的异常类

     

      本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多