《Head First Python》的异常处理一节,推荐了一种编程风格:让异常发生,再恢复;不要提前加入判断逻辑。
主要好处如下:
- 可以让你关注代码真正需要做的工作
- 可以避免向程序增加不必要的代码和逻辑,降低复杂性
但是,它并没有提到依赖异常处理机制可能导致的性能问题(大概因为这是入门书吧)。
经过测试,try/except 机制的运行时长大概是直接加入判断逻辑的 10 倍。在超大规模计算量的情况下,会导致严重的性能问题。
对比截图如下:
结论:涉及大规模计算时,慎用异常机制。异常,主要用来处理小概率事件,如果你知道某个特殊事件发生的概率很大,就直接写到判断逻辑里好了。