免费注册 查看新帖 |

Chinaunix

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

最近在弄C++方面,突然想到C的话,出现异常情况,如何善后? [复制链接]

论坛徽章:
0
31 [报告]
发表于 2010-11-15 04:30 |只看该作者
assert不出来的,你也throw不出来,也就cache不到
所有你能写出一个逻辑,throw异常的,你都同样能写出 ...
reiase 发表于 2010-11-14 12:54



老大,signal引发的异常只是其中一小部分而已。。。。大部分异常是程序检测到输入不对的时候,自己throw出来的。是逻辑上的异常,而不是运算上的异常。
楼主明显是习惯了try-catch-finally块,突然发现在没有try-catch-finally语法的C 语言中不知道如何写代码了而已。
你和他扯信号什么的有用吗?C语言的特点就是简单,楼主非想把问题复杂化,明显他脑子是卡壳了。

论坛徽章:
0
32 [报告]
发表于 2010-11-15 09:05 |只看该作者
回复 30# unistd


    不是...我是想考虑在程序崩溃的时候,如何安全释放资源...

论坛徽章:
0
33 [报告]
发表于 2010-11-15 09:06 |只看该作者
回复 29# reiase


    嗯...谢谢!

论坛徽章:
0
34 [报告]
发表于 2010-11-15 09:18 |只看该作者
C的机制处理机制确实简单,只从语言层面来说,其他的什么手段也都是和平台相关的,不是语言层面考虑做的,当然也就和你说的try catche这种语言的支持不是一个层面拉。

论坛徽章:
0
35 [报告]
发表于 2010-11-15 09:24 |只看该作者
回复 34# zhoubug


    嗯,谢谢,是我开始想错了...

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:58:11数据库技术版块每日发帖之星
日期:2015-08-30 06:20:00
36 [报告]
发表于 2010-11-15 11:11 |只看该作者
回复 32# lsupper


    那就别让他崩溃,就这么简单。

论坛徽章:
0
37 [报告]
发表于 2010-11-15 12:39 |只看该作者
linux全是用C写的,你参考一下就知道了.

论坛徽章:
0
38 [报告]
发表于 2010-11-15 12:40 |只看该作者
学习了

论坛徽章:
0
39 [报告]
发表于 2010-11-15 12:49 |只看该作者
楼主提的问题一直是我想提的

我也想问,在程序崩溃后怎样清理资源?

特别注意是在程序崩溃情况下,而不是指一般的可恢复异常.

还需要指出的是操作系统是可以清理一些资源,但有些资源还是必需手动清除的,比如动态分配的内存.

我想解决程序崩溃后清理资源的问题还得依赖操作系统的一些机制,举个例子:

如Symbian OS提供清除栈,类的对象在创建初始化时,可以把this压入清除栈,程序若正常运行,结束时可以从清

除栈弹出,然后销毁;若出现异常或则毁灭性的错误,OS会自动调用清除栈销毁相应的资源.这和智能指针不同,

清除栈是托管给OS的.

我最近在看Hans Boehm gc(http://www.hpl.hp.com/personal/Hans_Boehm/gc/),不知道gc能否解决程序崩溃

后清理资源的问题

我想借助UNIX/Linux操作系统的机制来实现类似清除栈的机制.

论坛徽章:
0
40 [报告]
发表于 2010-11-15 13:01 |只看该作者
楼主提的问题一直是我想提的

我也想问,在程序崩溃后怎样清理资源?

特别注意是在程序崩溃情况 ...
osmanthusgfy 发表于 2010-11-15 12:49


还需要指出的是操作系统是可以清理一些资源,但有些资源还是必需手动清除的,比如动态分配的内存.==============================
谁告诉你操作系统不能释放动态分配的内存?


你别拿symbian操作系统说事,它不是一个完整的操作系统,手持设备的操作系统,估计不可能坐到完整的多任务多用户,不可能做到完整的进程隔离。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP