TL 论坛上关于C++的错误处理的讨论

  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,compiler,编译器)