免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wheniwasyoung
打印 上一主题 下一主题

C++写后台程序时,是否不提倡try...catch... [复制链接]

论坛徽章:
0
31 [报告]
发表于 2010-02-03 10:15 |只看该作者
这个不是编码风格和习惯的问题,而是一个设计理念的问题。没有好与坏,只有是否适合你的项目,你的团队。

论坛徽章:
1
2017金鸡报晓
日期:2017-02-08 10:33:21
32 [报告]
发表于 2010-02-03 10:58 |只看该作者
我们公司的后台程序代码里有很多异常处理

论坛徽章:
0
33 [报告]
发表于 2010-02-03 13:29 |只看该作者
没有用与不用

论坛徽章:
0
34 [报告]
发表于 2010-02-03 18:15 |只看该作者
可以用 new(std::nothrow) 呀
hellioncu 发表于 2010-02-03 10:05


那还是直接用c语言算了。

论坛徽章:
0
35 [报告]
发表于 2010-02-03 20:20 |只看该作者
回复 1# wheniwasyoung


  不完全认同,和成员的C++能力有关,通常较高的建议使用,返回值通常弄得乱乱的

论坛徽章:
0
36 [报告]
发表于 2010-02-03 21:11 |只看该作者
异常作为ISO98标准推出,是经过委员会反复地推敲的。
要不要用异常,可以想想"C++程序设计语言"里的一句话:“异常机制增强程序健壮性”。
实际开发中遇到一些的问题,仔细想想,就知道异常的作用了。

论坛徽章:
0
37 [报告]
发表于 2010-02-03 21:19 |只看该作者
copy blog一小文。
---------------------------------
用C++写程序的时候,什么情况下用异常,什么情况下用错误码? 个人观点:只有系统确实需要性能的时候,才考虑不用异常处理错误;异常最主要的缺点:性能损失,使用异常,运行期间在不发生异常的情况下,性能可能会下降5%-14%!
为什么要使用异常,异常能给我们带来什么?
1. 增强程序健壮性,减少BUG
如果系统某个地方throw异常,程序员必须在某个地方catch它,然后进行处理:处理错误或重新throw。如果采用错误码来处理错误,错误的返回值可以被忽略,可能这个错误会导致系统的运行状态处于无定义状态,在某一时刻导致系统崩溃。
2. 错误处理集中化,使代码变得更简洁优美,更易维护
在某个地方throw异常,然后在某个地方catch。单从只有两层调用的简单代码层次上来说,我们可能认为,异常处理让代码变得更复杂了。但如果你的调用关系是多层的,异常的好处就体现出来了。这个实际开发中应该会有所体会。如果采用返回错误码的方式,你必须在每个调用处处理返回值,会增加许多的重复代码。
3. 错误信息更灵活、丰富
异常具有继承的物征。

论坛徽章:
0
38 [报告]
发表于 2010-02-03 21:20 |只看该作者
我本人强烈建议用异常。但现实90%的人都反对异常。 这是没有创新的思维造成的结果,可以理解。

论坛徽章:
0
39 [报告]
发表于 2010-02-03 22:40 |只看该作者
copy blog一小文。
---------------------------------
用C++写程序的时候,什么情况下用异常,什么情况下 ...
daem0n 发表于 2010-02-03 21:19



    说的很好很透彻,我以前一直不喜欢用异常,现在觉得真是这样的,严格的编程非常重要,能暴露很多bug,这能保证软件的健壮性,而对于公司来说,健壮性最重要的,慢点他都可以忍受,有bug却不行,老板容易发飙,^_^

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
40 [报告]
发表于 2010-02-03 23:33 |只看该作者
最近一个C程序,setjmp救了我。
遗憾的是,setjmp/longjmp很难嵌套着用,这点比不上异常。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP