try-catch 捕捉不到异常
2014-01-06 14:35
253 查看
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就行了
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就行了
相关文章推荐
- try-catch 捕捉不到异常
- Android:java 抛出异常throw与throws以及捕捉异常try、catch、finally学习
- java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
- C# 中的异常捕捉(try)和异常处理(catch)
- 异常----异常捕捉try&catch
- java 异常捕捉 ( try catch finally )
- 异常----异常捕捉try&catch
- java 异常捕捉 ( try catch finally )
- java 异常捕捉 ( try catch finally ) 清晰解释
- c++中的异常捕捉try和catch
- java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
- 异常----异常捕捉try&catch
- java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
- try,catch,throw异常捕捉
- C# 中的异常捕捉(try)和异常处理(catch)
- java里面try,catch,finally异常捕捉
- 异常----异常捕捉try&catch
- 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
- vc try catch捕捉所有异常的问题
- java 异常捕捉 ( try catch finally )