TL 论坛上关于C++的错误处理的讨论
2010-03-20 09:23
351 查看
TL论坛
总算
回归一些实质性的贴子了。关于C++的错误处理,一直都是一个很有争议性的问题。一些C++大师在教科书上劝说大家应该用异常Exception在错误处
理上。但是,很多实际工作的朋友,甚至Google公司都提倡“We do not use C++ Exception”(http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Exceptions
).
那么到底谁对谁错,又变成TL上一个激烈的争论问题了。相对于MITBBS上那些无聊的大妈出轨帖子,我还是愿意和国内的朋友们混在TL这个小圈子论坛。
其实pongba兄在很在以前就写过关于C++的错误处理问题《错误处理
(Error-Handling)
:
为何、何时、如何
(rev#2)
》(http://blog.csdn.net/pongba/archive/2007/10/08/1815742.aspx
)。
文章是比较支持C++的Exception。如果使用try,catch的确能够让代码逻辑流程更加清晰,不用夹杂太多的if,else的
errorcode判定。但是,TL论坛也有不少朋友提出,C++ Compiler不强制外部函数capture调用函数的异常
。
在实际的工作做,就需要开发人员的自律。特别是不同团队开发的模块,如果对方在自己的函数里面定义各种不同的Exception,而在函数
declaration又不写完整,外部人员怎么知道该去capture那些Error呢?Java和C#的编译器会强制调用函数的去处理内部函数可能抛
出的异常,而C++不强制这点。别人不可能用深度优先遍历去看你的代码,看你会抛出那些exception。就如TL论坛的莫兄台说的,“在C++内部函
数随便抛异常,就跟随地大小便一样恶心”。
总算
回归一些实质性的贴子了。关于C++的错误处理,一直都是一个很有争议性的问题。一些C++大师在教科书上劝说大家应该用异常Exception在错误处
理上。但是,很多实际工作的朋友,甚至Google公司都提倡“We do not use C++ Exception”(http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Exceptions
).
那么到底谁对谁错,又变成TL上一个激烈的争论问题了。相对于MITBBS上那些无聊的大妈出轨帖子,我还是愿意和国内的朋友们混在TL这个小圈子论坛。
其实pongba兄在很在以前就写过关于C++的错误处理问题《错误处理
(Error-Handling)
:
为何、何时、如何
(rev#2)
》(http://blog.csdn.net/pongba/archive/2007/10/08/1815742.aspx
)。
文章是比较支持C++的Exception。如果使用try,catch的确能够让代码逻辑流程更加清晰,不用夹杂太多的if,else的
errorcode判定。但是,TL论坛也有不少朋友提出,C++ Compiler不强制外部函数capture调用函数的异常
。
在实际的工作做,就需要开发人员的自律。特别是不同团队开发的模块,如果对方在自己的函数里面定义各种不同的Exception,而在函数
declaration又不写完整,外部人员怎么知道该去capture那些Error呢?Java和C#的编译器会强制调用函数的去处理内部函数可能抛
出的异常,而C++不强制这点。别人不可能用深度优先遍历去看你的代码,看你会抛出那些exception。就如TL论坛的莫兄台说的,“在C++内部函
数随便抛异常,就跟随地大小便一样恶心”。
相关文章推荐
- 【面向对象语言系列】关于 C++ 错误处理,你需要知道的事
- 【C++错误处理】VC6中关于bool __cdecl std::isdigit(_E,const class std::locale &)' : expects 2 arguments
- 【编程题目】数值的整数次方——关于代码完整性及错误处理方式的探讨(C++实现)
- MindManager怎么处理出现的C++错误
- 关于MFC控件变量错误的处理
- 关于断言与错误处理,以及测试用例的设计
- 关于异常和错误处理编程的精华文章。。来自Damien Katz
- C++中关于操作符先(++)后(++)问题的讨论
- 关于wcf异常异常信息:由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribut
- MSN上关于C++的异常处理和名字空间的聊天记录
- 关于thinkPHP访问数据库之后<title>标签显示”系统发生错误“的处理
- 关于recv的一些错误处理
- 关于内存分配的几个错误C++
- 关于在英文Windows XP 企业版下运行出现乱码,甚至无法打开数据库的错误处理方法
- Unix/Linux C++应用开发-异常以及错误处理
- 关于C++处理1+2+......+n的新思路
- Linux下编译C/C++时,出现/usr/bin/ld: cannot find -l*** 错误的处理
- 关于hibernate的Could not execute JDBC 错误的处理办法
- 关于C/C++发送到打印机的一些问题处理
- PHP中关于图片处理技术----错误的解决方案