zoukankan      html  css  js  c++  java
  • 异常(1)

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

    class DivideZero
    {
    public:
        //
    带参构造
        DivideZero( const char* pStr )
        {
            strcpy(szMessage, pStr);
        }
        //
    拷贝构造
        DivideZero(const DivideZero &Obj)
        {
            strcpy(szMessage,Obj.szMessage);
        }
        char szMessage[32];
    };

    void fun()
    {   
        //
    编译错误  编译期语法错误
        //
    逻辑错误  编译期语法正确,运行时出错

        int i = 10;
        int j = 0;
        double z = 0;
       
        try
        {
           //
    抛出异常,下面就不执行了,直接跳到对应的catch语句块中去
            throw DivideZero("
    0异常");
           
            if ( j == 0 )
            {
                throw DivideZero("
    0异常");
            }
            cout << i / j << endl;
        }
    // int
    int& 只能写一个
    //     catch (int)
    //     {
    //         cout << "int
    异常发生!" << endl;
    //     }
        catch (char*)
        {
            cout << "char*
    异常发生!" << endl;
        }
        //
    形参名可写可不写
        catch (int&)
        {
            cout << "int&
    异常发生!" << endl;
        }
        //
    这里刚好有一个上边抛出异常对应的类型接收,所以直接跳到这里来
        catch (DivideZero &theDiv)
        {
            cout << theDiv.szMessage << endl;
        }
       //...
    所有的异常类型都进入此语句块处理
        catch (...)
        {
            cout << "
    异常发生!" << endl;
        }
    }

    int main(int argc, char* argv[])
    {
        try
        {
            fun();
        }
        //
    上面的fun函数体内已经对相应的异常做出处理,所以这里就不会执行了
        catch ( DivideZero )
        {
            cout << "DivideZero
    异常发生" << endl;
        }
        catch (...)
        {
            cout << "
    异常发生" << endl;
        }
       
        return 0;
    }

  • 相关阅读:
    数据结构:树[data struct: tree]
    关于计算机学科的一些期刊和会议(转)
    这个世界究竟是怎么了
    [思考]怎么在C#中加入新功能
    vsta相关
    Practical numerical methods with C#
    C# (CSharp)中的foreach,for关键词
    代码生成相关
    没有可用于当前位置的源代码 解决办法
    access数据库删除两个日期之间 的数据 SQL语句
  • 原文地址:https://www.cnblogs.com/w413133157/p/1666760.html
Copyright © 2011-2022 走看看