过度依赖异常处理机制,可能导致性能问题

《Head First Python》的异常处理一节,推荐了一种编程风格:让异常发生,再恢复;不要提前加入判断逻辑。

主要好处如下:

  1. 可以让你关注代码真正需要做的工作
  2. 可以避免向程序增加不必要的代码和逻辑,降低复杂性

但是,它并没有提到依赖异常处理机制可能导致的性能问题(大概因为这是入门书吧)。

经过测试,try/except 机制的运行时长大概是直接加入判断逻辑的 10 倍。在超大规模计算量的情况下,会导致严重的性能问题。

对比截图如下:

 

结论:涉及大规模计算时,慎用异常机制。异常,主要用来处理小概率事件,如果你知道某个特殊事件发生的概率很大,就直接写到判断逻辑里好了。