免费注册 查看新帖 |

Chinaunix

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

[C++] c++中的new大家的项目中是怎么判断失败的? [复制链接]

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
11 [报告]
发表于 2013-10-16 16:20 |只看该作者
从来不检查, 也别用nothrow的徒增悲伤。

论坛徽章:
7
天蝎座
日期:2013-09-28 10:45:42双子座
日期:2013-10-16 16:27:09射手座
日期:2013-10-23 10:21:32处女座
日期:2014-09-17 16:44:332015年亚洲杯之巴林
日期:2015-04-09 17:28:01冥斗士
日期:2015-11-26 16:19:0015-16赛季CBA联赛之山东
日期:2018-03-02 23:59:31
12 [报告]
发表于 2013-10-16 16:22 |只看该作者
回复 11# linux_c_py_php

code review没人说你?


   

论坛徽章:
9
摩羯座
日期:2013-08-15 15:18:48狮子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龙
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亚洲杯之韩国
日期:2015-03-26 10:16:442015亚冠之武里南联
日期:2015-08-18 14:55:52
13 [报告]
发表于 2013-10-16 17:15 |只看该作者
本帖最后由 w_anthony 于 2013-10-16 17:18 编辑

除非这段内存非常大,new失败了是可接受的,还有其他擦屁股的补救办法,否则内存都不够了,还能怎么办呢?正常逻辑业务也未必能跑完整吧?平常分配几十几百字节的,它要挂就让它挂吧,更何况还有vector内部内存不够了,用try-catch看起来也不合适吧。

论坛徽章:
0
14 [报告]
发表于 2013-10-16 20:07 |只看该作者
就算用异常,为什么每new一次都要catch?

论坛徽章:
0
15 [报告]
发表于 2013-10-16 20:08 |只看该作者
回复 12# cxytz01


code review没人说敢随便乱catch(bad_alloc)的?

论坛徽章:
3
双鱼座
日期:2013-08-17 16:21:25CU十二周年纪念徽章
日期:2013-10-24 15:41:34射手座
日期:2014-08-10 13:48:32
16 [报告]
发表于 2013-10-16 20:22 |只看该作者
二楼好多徽章  平时写程序我都没判断new成功还是失败。。一定要判断么?

论坛徽章:
7
天蝎座
日期:2013-09-28 10:45:42双子座
日期:2013-10-16 16:27:09射手座
日期:2013-10-23 10:21:32处女座
日期:2014-09-17 16:44:332015年亚洲杯之巴林
日期:2015-04-09 17:28:01冥斗士
日期:2015-11-26 16:19:0015-16赛季CBA联赛之山东
日期:2018-03-02 23:59:31
17 [报告]
发表于 2013-10-16 22:17 |只看该作者
回复 15# 幻の上帝

随便乱catch(bad_alloc)是什么意思,catch有错吗?



   

论坛徽章:
0
18 [报告]
发表于 2013-10-16 23:04 |只看该作者
回复 17# cxytz01

既然要用catch就应该知道为什么非得catch:确信在这里catch有意义,这里的异常能被立即处理掉,程序仍然能有很大可能性恢复到预期的“正常”控制流中。
对于bad_cast来说,出现即意味着程序在获取关键资源上的失败。你确信应该在出现这种情况下还到处就地处理?合理的处理逻辑是什么?你能估计处理完之后有多大可能性紧接着继续失败?

论坛徽章:
0
19 [报告]
发表于 2013-10-17 17:02 |只看该作者
我做的项目也不检查,但如果new失败, 平台会重起这个进程.

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
20 [报告]
发表于 2013-10-17 17:10 |只看该作者
cxytz01 发表于 2013-10-16 16:22
回复 11# linux_c_py_php

code review没人说你?


... 我们都是职业程序员, 没人会说new失败的情况...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP