C++ try catch 的用法

比如说两个数相除,除数不能为零,当除数为零时抛出异常,用代码要怎么实现,try和catch里分别要写些什么?... 比如说两个数相除,除数不能为零,当除数为零时抛出异常,用代码要怎么实现,try和catch里分别要写些什么? 展开
 我来答
醉隱山人
2014-09-20 · TA获得超过5867个赞
知道大有可为答主
回答量:1464
采纳率:66%
帮助的人:808万
展开全部
catch(object^)表示捕获一个object类型的异常类。而这个类必须是在try语句块中被抛出的。例如:
#include<iostream>
#include<string>
using namespace std;

int main()
{
string ex = "this is a exception";
try
{
cout<<"before throw"<<endl;
throw ex;
cout<<"after throw"<<endl;
}
catch(string &e)
{
cout<<e<<endl;
}

cout<<"end"<<endl;
}

以上这个例子也说明了,你这 个问题用try,catch是不能解决的。捕捉到异常后,是不再执行下一条语句,当然如果你放在catch语句块之后,是可以执行的。

将抛出异常的语句放在try中,在catch中处理该异常,在catch之后继续执行就可以了。
希望可以帮助到你
仙戈雅3n
推荐于2018-03-19 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:905万
展开全部
#include <iostream>
using namespace std;

void division(int dividend,int divisor){
    int result=0;
if(divisor==0) throw ("除数不能为零."); // 使用throw关键字抛出异常
result=dividend/divisor;
cout<<result<<endl;
}
int main()
{
try
{
division(4,0);
return 0;
}
catch (const char *err_msg)
{
cout<<err_msg<<endl;
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夏了夏天C1
2014-09-20 · 超过73用户采纳过TA的回答
知道答主
回答量:126
采纳率:100%
帮助的人:68万
展开全部
throw抛出的是类型
throw(0); 说明你抛出的是int类型!
所以在try下方 catch为int类型时捕获异常
你把throw改成'a'之类的就是char类型了!
catch就可以捕获char类型了!
请采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可以叫我表哥
推荐于2016-10-31 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
在c++中,可以直接抛出异常之后自己进行捕捉处理,如:(这样就可以在任何自己得到不想要的结果的时候进行中断,比如在进行数据库事务操作的时候,如果某一个语句返回SQL_ERROR则直接抛出异常,在catch块中进行事务回滚)
#include <iostream>
#include <exception>
using namespace std;
int main () {
try
{
throw 1;
throw "error";
}
catch(char *str)
{
cout << str << endl;
}
catch(int i)
{
cout << i << endl;
}
}
也可以自己定义异常类来进行处理:
#include <iostream>
#include <exception>
using namespace std;

//可以自己定义Exception
class myexception: public exception
{
virtual const char* what() const throw()
{
return "My exception happened";
}
}myex;

int main () {
try
{
if(true) //如果,则抛出异常;
throw myex;
}
catch (exception& e)
{
cout << e.what() << endl;
}
return 0;
}
同时也可以使用标准异常类进行处理:
#include <iostream>
#include <exception>
using namespace std;

int main () {
try
{
int* myarray= new int[100000];
}
catch (exception& e)
{
cout << "Standard exception: " << e.what() << endl;
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式