您的位置:首页 > 编程语言 > C语言/C++

C++之try catch 异常处理入门实例

2017-09-20 16:41 435 查看
[cpp] view
plain copy

#include <exception>  

#include <iostream>  

using namespace std;  

  

/********************************** 

//project -> Properties -> C/C++ -> Code Generation --> Enable C++ Exceptions 

//选择  Yes with SEH Exceptions (/EHa)  这样的话C++的try catch 也可以捕获到空指针,内存越界,0除异常 

//默认是选择Yes (/EHsc) 

**********************************/  

  

void TestIntType()  

{  

    try  

    {  

        throw 1;  

    }  

    catch(...)  

    {  

        cout<< "在 try block 中, 准备抛出一个异常." << endl;  

    }  

}  

  

void TestDoubleType()  

{  

    try  

    {  

        throw 0.5;  

    }  

    catch(...)  

    {  

        cout<< "在 try block 中, 准备抛出一个异常." << endl;  

    }  

}  

  

void TestEmptyPointType()  

{  

    try  

    {  

        int* p = NULL;  

        *p = 3;  

    }  

    catch(...)  

    {  

        cout<< "非法地址操作异常" << endl;  

    }  

}  

  

void TestDivZeroType()  

{  

    try  

    {  

        int b = 0;  

        int a = 3/b;  

    }  

    catch(...)  

    {  

        cout<< "0除异常" << endl;  

    }  

}  

  

void TestMemoryOutType()  

{  

    int * a = new int[4];  

    try  

    {  

        for (int i = 0; i<245; i++)  

        {  

            a++;  

        }  

        *a = 3;  

    }  

    catch(...)  

    {  

        cout<< "内存越界异常" << endl;  

    }  

}  

  

int main(int argc, char* argv[])  

{  

    TestEmptyPointType();  

    //TestDivZeroType();  

    TestMemoryOutType();  

    return 1;  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ try cathc 异常处理