- 主题:异常这玩意儿当初是哪个脑残发明出来的?
异常是一种封装的思想
【 在 speedboy2998 的大作中提到: 】
: 污染性太强了。。。
: 老老实实地判断返回值不好好的吗?
--
FROM 114.254.2.*
C++的try/catch可不是用longjmp,现在都是查表了。早期还有不是查表的。
泄露问题,C++是有个专用词exception safety的。不知道怎么写exception-safe的代码的,就不要用异常。
【 在 ylh1969 的大作中提到: 】
: 这方法比较麻烦。而且,同样存在中间层内存泄露问题。
: 估计try catch 就是用的longjmp。
--
FROM 114.241.228.*
io错误用什么值,网络错误用什么值?你能保证全球通用没有歧义?能一眼看出什么返回值代表什么错误?
【 在 speedboy2998 (极品飞车) 的大作中提到: 】
: 污染性太强了。。。
: 老老实实地判断返回值不好好的吗?
:
: --
--
FROM 111.197.240.*
异常才是符合人类直觉的,而且都面向对象了,老抱着你的返回值干什么?污染了正常函数的返回值怎么办
【 在 speedboy2998 (极品飞车) 的大作中提到: 】
: 问题是这玩意儿有污染性啊。如果能够内部消化不污染到外面来,我觉得没问题。
:
: 异常太有悖于人类正常思维模式。
: 用返回值判断,更天然地符合人类直觉。
--
FROM 111.197.240.*
我也是这个赶脚
【 在 nikezhang 的大作中提到: 】
: 异常才是符合人类直觉的,而且都面向对象了,老抱着你的返回值干什么?污染了正常函数的返回值怎么办
--
FROM 216.240.30.*
C++几乎不用这个吧…
【 在 speedboy2998 (极品飞车) 的大作中提到: 】
: 污染性太强了。。。
: 老老实实地判断返回值不好好的吗?
:
: --
--
FROM 125.33.219.*
exception-safe不就是最难得的吗?估计本版十个能淘汰九个吧。
【 在 z16166 的大作中提到: 】
:
: C++的try/catch可不是用longjmp,现在都是查表了。早期还有不是查表的。
:
: 泄露问题,C++是有个专用词exception safety的。不知道怎么写exception-safe的代码的,就不要用异常。
:
#发自zSMTH-v-@OnePlus IN2010
--
FROM 111.199.253.*
现在JavaScript里propose了一个 ?= 操作符,可以把try-catch变成返回值...
--
FROM 223.167.244.*
会用RAII已经解决很大部分问题了,怕的是还继续用C风格在写C++代码,然后自己也觉得自己是C++码农了,哈哈
【 在 ble 的大作中提到: 】
: exception-safe不就是最难得的吗?估计本版十个能淘汰九个吧。
:
: #发自zSMTH-v-@OnePlus IN2010
--
FROM 114.241.228.*
嗯,我觉得它大概也是这么实现的。
关于中间层的泄露,我之前说了,我“重载”了内存和文件的操作,比如内存,大致就是大内存的话记录malloc的返回,小内存的话从我预先分配的大块里面截取。我可能之前看过一些文章,就模仿了一下这个做法。
如果成功退出,我就assert中间层的它们自己已经处理好(都释放了),如果是longjmp退出,我就把记录了没释放的释放掉。
【 在 ylh1969 的大作中提到: 】
: 这方法比较麻烦。而且,同样存在中间层内存泄露问题。
: 估计try catch 就是用的longjmp。
--
FROM 122.193.118.*