2个回答
展开全部
如果我没有记错的话,这个异常用try /catch是捕获不到的
好像是被底层封装起来了.
如果有需要,应该自己写这个异常.
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
class Error{
public :
virtual void showErrorMsg()=0;
};
class MyExceptionForZero : public Error{
private:
string errMsg;
public :
MyExceptionForZero(string str) : errMsg(str){};
void showErrorMsg(){
cout<<errMsg<<endl;
}
};
void myTest(int i,int j) {
MyExceptionForZero m("除数为0啦");
cout<<"I want to get the result for j/i..."<<endl;
if (i==0) throw m;
else cout<<j/i<<endl;
}
int main(int argc, char *argv[])
{
int i=0;
int j=4;
try{
myTest(i,j);
}
catch(Error &e){
e.showErrorMsg();
}
system("PAUSE");
return EXIT_SUCCESS;
}
好像是被底层封装起来了.
如果有需要,应该自己写这个异常.
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
class Error{
public :
virtual void showErrorMsg()=0;
};
class MyExceptionForZero : public Error{
private:
string errMsg;
public :
MyExceptionForZero(string str) : errMsg(str){};
void showErrorMsg(){
cout<<errMsg<<endl;
}
};
void myTest(int i,int j) {
MyExceptionForZero m("除数为0啦");
cout<<"I want to get the result for j/i..."<<endl;
if (i==0) throw m;
else cout<<j/i<<endl;
}
int main(int argc, char *argv[])
{
int i=0;
int j=4;
try{
myTest(i,j);
}
catch(Error &e){
e.showErrorMsg();
}
system("PAUSE");
return EXIT_SUCCESS;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |