为什么我希望用C而不是C++来实现ZeroMQ
http://blog.jobbole.com/19647/
C++的异常处理机制却无法满足这个要求。C++的异常机制对于确保程序不会失败是非常有效的——只要将主函数包装在try/catch块中,然后你就可以在一个单独的位置处理所有的错误。然而,当你的目标是确保没有未定义行为发生时,噩梦就产生了。C++中引发异常和处理异常是松耦合的,这使得在C++中避免错误是十分容易的,但却使得保证程序永远不会出现未定义行为变得基本不可能。
之前看过一篇文章,说是网络编程C 语言异常
JAVA异常处理
http://blog.jobbole.com/19647/
有一种说法是, java的异常处理方式,拼命的补漏洞,程序运行时出现问题要么位置,不如c语言通过状态来处理方式的明晰,
操作系统,网络都用异常处理方式。
java的异常会污染代码底层的异常,如果不及时处理掉抛出,会造成系统的总成部分来分心细节。如果是告诉高层代码,我底层出现问题,
上层知道一个大概就可以了。就可以决策,具体出问题的模块才最清楚我应该怎么处理。
当然,java提供了底层处理的机制。
另外一个被人吐槽,异常不如处理错误返回码来的清晰断定问题根源。
抛出的异常会给代码,扰乱程序的正常流程。
另外一个槽点,异常会使得堆栈退出的流程,造成很多资源来不及息勾或者是考虑资源释放不足。
c#改进的一种方式,想处理再处理,不污染接口。