C++ try 和catch的用法

echo_blue-eyes 2013-05-13 11:25:25
catch可以同时抓取同类型的不同异常吗

代码:
try{
Matrix f = a + b;(抛出的异常为1)
Matrix p = c + d;(抛出的异常为2)
}

catch
{
if(error == 1)
cout << "can't add" << endl;
if(error == 2)
cout << "can't multiplty" << endl;
}


两个都有异常,为什么每次都只能抓取第一个异常呢,怎么才能多个异常一块抓取啊
...全文
142 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
benlypan 2013-05-13
  • 打赏
  • 举报
回复
引用 3 楼 woaipaiqiu 的回复:
怎么才能同时抓取呢
既然第一处异常了,说明再往下执行已经没有意义了,下面的语句即使有异常抓取到也没有意义了。 如果非要两条语句都catch,你写两个try catch呗。
echo_blue-eyes 2013-05-13
  • 打赏
  • 举报
回复
怎么才能同时抓取呢
passion_wu128 2013-05-13
  • 打赏
  • 举报
回复
try{ Matrix f = a + b;(抛出的异常为1) Matrix p = c + d;(抛出的异常为2) } catch(int error) //这里加上类型和变量不就可以了么? { if(error == 1) cout << "can't add" << endl; if(error == 2) cout << "can't multiplty" << endl; }
www_adintr_com 2013-05-13
  • 打赏
  • 举报
回复
第一处异常了, 第二处就没有机会执行, 没有执行自然就不会有第二次异常了.
就是那个党伟 2013-05-13
  • 打赏
  • 举报
回复
抓到后继续抓 楼上就这么写的
AndyStevens 2013-05-13
  • 打赏
  • 举报
回复
虽然没有意义,但还是贴出段代码吧。。
void main()
{
	try{
		
		try{
			cout<<"the first!"<<endl;
		throw(1);
		}catch(...){
			cout<<"catch the first!"<<endl;
		}
		cout<<"the second!"<<endl;
		throw(2);
	}catch(...){
		cout<<"catch the second!"<<endl;
	}
};
这样俩异常都可以捕获到了。
zzmc 2013-05-13
  • 打赏
  • 举报
回复
帮顶下吧!c++的try没用过

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧