zoukankan      html  css  js  c++  java
  • try-catch 捕捉不到异常

    code:

    int _tmain(int argc, _TCHAR* argv[])

    {
    cout << "In main." << endl; 
    //定义一个try block,它是用一对花括号{}所括起来的块作用域的代码块
    try
    {

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

                    strcpy(NULL, "asd");

    cout << "在 try block 中, 由于前面抛出了一个异常,因此这里的代码是不会得以执行到的" << endl;

    catch(...)

    cout << "在 catch block 中, 处理异常错误。异常对象value的值为:"<< endl;

    cout << "Back in main. Execution resumes here." << endl;


    return 0;

    }


    但是在2010下编译上面这段代码,异常捕捉不到.

    -----解决方案--------------------
    这个跟C++的try-catch异常捕获的两种模式有关。同步模式和异步模式。其中前者不能捕获内存访问错误,后者可以捕获内存访问错误。 
    /EHs /EHsc是启用同步模式。(同 /GX) 
    /EHa是起用异步模式。 

    2010默认是 /EHsc,  改为 /EHa就行了

  • 相关阅读:
    第4章 排序
    第5章 算术与代数
    第6章 组合数学
    第7章 数论
    第8章 回溯法
    第9章 图遍历
    第11章 动态规划
    第10章 图算法
    第12章 网格
    第13章 几何
  • 原文地址:https://www.cnblogs.com/vcerror/p/4289102.html
Copyright © 2011-2022 走看看