转isocpp的异常FAQ里的一段话,有点意思,是一种积极的心态,也回答了楼上一些人的argue。机翻:
Q:
我理解前面的FAQ是说异常处理很简单和容易;我的理解对吗?
A:
不!错了!停下来!回去!不要领取200美元。
信息并不是异常处理很简单和容易。信息是异常处理是值得的。好处大于成本。
这里有一些成本:
异常处理不是免费的午餐。它需要纪律和严谨。要理解这些纪律,你真的应该读完剩下的FAQ和/或其中一本关于这个主题的优秀书籍。
异常处理不是万能的。如果你和一个邋遢和无纪律的团队一起工作,不管他们是使用异常还是返回代码,你的团队可能都会遇到问题。能力不足的木匠即使使用好锤子也会干糟糕的活。
异常处理不是一刀切的。即使你已经决定使用异常而不是返回代码,这并不意味着你要把它们用于每件事。这是纪律的一部分:你需要知道什么情况应该通过返回代码报告,什么情况应该通过异常报告。
异常处理是一个方便的替罪羊。如果你和那些责怪他们工具的人一起工作,当心建议异常处理(或任何其他新东西)。那些自我脆弱到需要责怪别人或别的东西的人,为了掩盖自己的错误,总是会无可避免地责怪使用的任何“新”技术。当然,理想情况下,你会和那些有情感能力学习和成长的人一起工作:和他们一起,你可以提出各种建议,因为这些人会找到让它工作的方法,并且在这个过程中你会觉得很有趣。
幸运的是,关于异常的正确使用有很多智慧和洞察力。异常处理不是新事物。整个行业已经看到了许多百万行的代码和许多人世纪的努力使用异常。陪审团已经做出了判决:可以正确地使用异常,当它们被正确使用时,能够提升代码质量。
学习如何做。
※ 来源:·水木社区 mysmth.net·[FROM: 222.128.162.*]
FROM 222.128.162.*