来自C ++背景,我学会了将异常的使用限制在特殊情况下,我对Python's cheap exceptions感到非常惊讶。实际上,某些语言功能(如迭代)似乎是基于抛出的异常。当考虑到(python)解释器必须保证其自身的完整性并因此进行多次检查时,这是有道理的。
在解释语言中期望廉价例外是否正常是否有意义?
修改:
要明确这个问题并不能主要解决性能问题,我应该补充一点,我尝试通过学习新语言来扩展我的编程技巧。我可能永远不会在C ++或Pascal的非特殊情况下使用异常,但在python中我显然应该(这可能不是唯一的语言)。因为如果我使用或不使用异常,它会对我的代码产生结构差异,一个简单的指南/经验法则将有助于开始使用新语言。
答案 0 :(得分:3)
透视:
在C ++中,除了异常外,一切都很便宜;
在Python中,异常与普通的东西一样耗时。