posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

(地基工)VC编译选项 /EHa

Posted on 2012-11-08 14:30 点点滴滴 阅读(1530) 评论(0)  编辑 收藏 引用 所属分类: 02 编程语言
class Base
{
public:
    
virtual const ::std::string& test()
    {
        
return "";
    }
};
class Base1
{
public:
    
virtual const ::std::string& test()
    {
         
return *value_;
    }
protected:
    ::std::
string* value_;
};
void testException()
{
    
try
    { 
        Base1
* abc = NULL;    
        abc
->test();
        
//throw "Out of memory!"; // No catch handler for this exception
    }
    
catch(
    {
        cout 
<< "Integer exception raised." << endl;
    }
}

在【属性】-》【C/C++】-》【代码生成】-》【启用C++异常】有如下4个选项,点击组合框,显示:

是(/EHsc)
是,但有 SEH 异常(/EHa)
<从父级或项目默认设置继承>

如果不选择【是,但有 SEH 异常(/EHa)】选项,try { } catch(...) {} 不起作用。新建项目缺省值是【是(/EHsc)】。就是说在缺省情况下微软不支持标准C++。