C++中的异常处理完全是没用的垃圾

MoFanYingXiong 2005-12-07 05:31:33
请问各位C++高手:
你们是否经常使用C++的异常处理(try,throw,catch)?大家觉得使用异常处理方不方便?反正我是从来没用过,因为我觉得异常处理是C++中的一项最没用的功能了。
下面我历数一下异常处理带来的种种害处:
第一条:异常处理机制简直就是一个毫无用处的东西。不用异常处理,同样能实现相应的功能,而且工作量绝不会比使用异常处理要多.
第二条:异常处理破坏了程序的结构和流程。甲函数调用乙函数,乙函数执行完后返回甲函数,继续运行,这是多么清析的流程啊。可是自从引入了这个该死的异常处理机制之后,一切全部乱套了。
第三条:异常处理只会带来更多的异常。考虑下面这个函数:
void aaa()
{
int * a;
a=new int;
bbb();
delete a;
}
如果在函数bbb中抛出了一个异常,则delete a这一句就不会被执行,于是就造成了内存的泄露。
第四条:为了处理这些该死的异常,编译器会为每一个函数加一些实现异常处理的代码,甚至会为一个作用块增加一大堆的代码,增加了代码的大小,减慢了运行的速度。而对于像我这种从来不使用异常处理的人来说,这些该死的代码简直就是一堆垃圾。
鉴于以上原因,我强烈反对在C++中引入异常处理机制。
以上仅是我本人对异常处理的看法,不知各位高手对此有何高见?请指教。
谢谢。
...全文
378 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
laomai 2005-12-07
  • 打赏
  • 举报
回复
本贴由于题目不当被强制结贴,请大家到http://community.csdn.net/Expert/topic/4444/4444468.xml?temp=.4844934继续讨论。
thomaslw 2005-12-07
  • 打赏
  • 举报
回复
长知识~ 不好意思MARK一下~
xiaocai0001 2005-12-07
  • 打赏
  • 举报
回复
不要用惯了C风格的错误处理, 就骂C++的异常.

第一条:异常处理机制简直就是一个毫无用处的东西。不用异常处理,同样能实现相应的功能,而且工作量绝不会比使用异常处理要多.
-------------------------------------
C语言讲究的是结构化程序设计, 以模块处理为中心, C++引入了对象的概念后, 就有本质的区别.仅管有些时候C风格的错误处理会显得得心应手, 但在大多数情况下, C风格的处理给程序设计带来很糟糕的混乱.


第四条:为了处理这些该死的异常,编译器会为每一个函数加一些实现异常处理的代码,甚至会为一个作用块增加一大堆的代码,增加了代码的大小,减慢了运行的速度。而对于像我这种从来不使用异常处理的人来说,这些该死的代码简直就是一堆垃圾。
--------------------------------------
如果你不想用异常, 你可以关闭编译器对异常的支持, 编译出的代码就不会加入异常的一些内容.这只是一个选择, 并不是必须这么做的.

此外, 不知道楼主遇到什么大的问题了, 以至于发如此大的不满.
  • 打赏
  • 举报
回复
确实是C++中最木有作用的特性, 搞得C++不怎么适合在嵌入式环境中使用鸟,让人郁闷。

不过不同意你的 1,2,3 点,如果不是移植性的原因,哦还是稀饭用用异常,至少比C的 setjmp , longjmp 优美的多,至于3,你用 auto_ptr<int> a = new int 不行么,不管有木有异常,反正我不稀饭用个裸指针。

特讨厌哪些说在多重循环里抛个异常跳出来的家伙,简直吃饱了撑的。谁检查我传给他参数对不对,文件在不在的时候动不动给我抛个异常的家伙我就跟他急,NND。
lbing7 2005-12-07
  • 打赏
  • 举报
回复
出了错应该在异常里清理,这你应该看到
如果觉得C++的不爽

去学JAVA嘛
那个非常傻瓜,大部分情况下可以挂空,让JVM去做
goodluckyxl 2005-12-07
  • 打赏
  • 举报
回复
我习惯沿用c中的异常处理方式
c++中实在用不惯

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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