关于除0异常的不同表现的问题
以下是两段除0异常测试代码
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
try
{
cin>>a; //cin语句在try块内
cin>>b;
c=a/b;
}
catch(...)
{
cerr<<"error";
}
return 0;
}
以上代码编译后,debug版本和release版本均可捕获到异常,运行正常
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cin>>a; //cin语句在try块外
cin>>b;
try
{
c=a/b;
}
catch(...)
{
cerr<<"error";
}
return 0;
}
上面代码编译后 debug版本正常,而release版本则不能捕获到异常,而产生应用程序错误,被操作系统
捕获到错误而终止
以上现象如何解释?
(编译器: vs.net2003,操作系统 win2k)