从历史上看,在类似C ++ 的语言中,与同一种语言中的 其他形式的流控制相比,异常的速度非常慢。
在C ++中,有两件事在起作用:
这种性能上的差异导致了例外背后的普遍智慧:仅在不寻常的事情上这样做,因此仅在最有益的地方使用它,而不会损害性能。
这不适用于高级语言。这也有两个原因:
例外仍然不是免费的,但这种差异不再是一件值得担心的事情。这意味着在C ++中形成的一般智慧在这里被错误地应用了。正常程序流程中经常使用异常。
实际上,它们内置于语言中,是您一直使用的结构。每次使用迭代器– Every时,都会使用for x in xrange(1000)
一个StopIteration
异常来结束循环。
选择Python中的例外或线性流控制,这更有意义。不要基于性能进行选择,除非您实际上处于性能很重要的内部循环中。在这种情况下,像往常一样,剖析并找出是否确实重要。
(我不能说PHP。)