zoukankan      html  css  js  c++  java
  • c++异常处理类

    语言的异常有三类:语法错误,逻辑错误,运行时异常(exception)

     

    可以看到,所有的异常类都继承自exception基类,exception类下的logic_error和runtime_error又是两个比较大类,包含有多个自类,它们分表代表逻辑类错误和运行时错误

     

    举例说明,如:

    1. 我们使用new开辟内存时,如果遇到空间不足,则会抛出bad_alloc的异常

    2. 我们使用dynamic_cast()进行动态类型转化失败时,则抛出bad_typeid异常

    3. 我们在计算数值超过该类型表示的最大范围时,则抛出overflow_error异常,表示运算上溢,同理,underflow_error表示运算下溢

    4. 我们在使用string类下标但越界时,则抛出out_of_range异常

    5. 需要注意的是,使用C++自带的标准异常类,需要包含对应的头文件:

       

      因为exception、bad_exception类在头文件exception中定义

      bad_alloc类在头文件new中定义

      bad_typeid类在头文件typeinfo中定义

      ios_base::failure类在头文件ios中定义

      其他异常类在stdexcept中定义

    #include <iostream>
    #include<new>
    #include<stdexcept>
    using namespace std;
    //异常处理 
    int main()
    {
       string *s;
       try
       {
           s=new string("www.dotcpp.com");
           cout<<s->substr(15,5);
         }
         catch(bad_alloc &t)
         {
           cout<<"Exception occurred:"<<t.what()<<endl;
         }
         catch(out_of_range &t)
         {
           cout<<"Exception occurred:"<<t.what()<<endl;
         }
        return 0;
         
    }
    

      

  • 相关阅读:
    截图插件
    断点续传
    sql server 将日期减一天
    C# 输出24小时格式时间
    蓝桥 凑平方数
    九宫重排
    HDU 1584
    HDU 2612 (两边一起)
    HDU 1016 Prime Ring Problem
    全排列、排列、排列组合
  • 原文地址:https://www.cnblogs.com/nanfengnan/p/14415422.html
Copyright © 2011-2022 走看看