一、问题的提出:
上午看到一段处理异常的代码,我试图在Visual C++ 6.0中运行,代码如下:
#include<iostream>
#include<stdexcept>
using namespace std;
int main()
{
try{
int ival=68;
int ival2;
cout<<"Please input the num:";
cin>>ival2;
cout<<ival<<"/"<<ival2<<"="<<(ival/ival2)<<endl;
}
catch(exception ex){//注意红色字体部分
cout<<"ERROR:"<<endl;
}
return 0;
}
运行界面如下:
Please input the num:0
68/0=
弹出对话框提示非法操作,(与本代码所要求的抛出异常信息完全不符合)
为什么不能正常运行?
二、解决方法:
将代码中的红色部分改成catch(...)即可。
运行界面如下:
Please input the num:0
68/0=ERROR
本文通过一个简单的除法运算示例,探讨了在Visual C++ 6.0中如何正确使用异常处理机制。当输入为0时,程序应捕获并处理除以零的异常情况,但原始代码未能如预期般工作。通过调整catch子句,实现了正确的异常捕捉。
2万+

被折叠的 条评论
为什么被折叠?



