vc和matlab混合编程,如果matlab函数处理不严谨,有可能会将inf、nan、null等传递给vc程序,造成程序出现异常。
用try{ } catch{ } 来捕获这种异常,vc2005以后默认是捕获不到这种CPU异常。
解决办法:项目属性->配置属性->C/C++->代码生成->启动C++异常->是,但有 SEH 异常 (/EHa)
例如:
#include<iostream>
using namespace std;
void main()
{
try
{
int i,j=0;
i=1/j;
}
catch(...)//可以捕获所有异常
{
cout << "被0除!" << endl;
}
}