• 异常(2)



    #include "stdafx.h"
    #include <iostream.h>

    class Vector
    {
    private:
        int *p;
        int m_nLen;
    public:
        Vector(int nLen)
        {
            p = new int [nLen];
            m_nLen = nLen;
        }
        ~Vector( )
        {
            delete [] p;
        }
        int size()
        {
            return m_nLen;
        }
        //
    重载 []
        int &operator[](int i)
        {
            if (i < 0 || i >= m_nLen)
            {
                //
    抛出一个类异常
                throw Range();
            }
            return p[i];
        }
       //
    声明类::
        class Range
        {
        };
    };

    int main(int argc, char* argv[])
    {
        Vector theVec(2);
       
        try
        {
            //
    会跳到下面的double分支中
            //throw 10.2;
           //
    这一句会引发一个异常
            int i = theVec[2];
            cout << i << endl;
        }
        catch (int)
        {
        }
        catch (float)
        {
        }
        catch (double)
        {
        }
       //
    收到哪个类的异常
        catch (Vector::Range&)
        {
            cout << "
    范围错误" << endl;
        }
        catch (...)
        {
            cout << "
    未知错误" << endl;
        }
        return 0;
    }

  • 相关阅读:
    mysql数据库常用命令
    二维码的生成--后台版
    软件构建--目录
    软件构建--项目总结
    软件构建--产品测试
    软件构建--产品研发
    软件构建--系统设计
    百度分享代码
    JS定时跳转URL并输出剩余秒数
    c#生成word文档
  • 原文地址:https://www.cnblogs.com/w413133157/p/1666775.html
Copyright © 2020-2023  润新知