【发布时间】:2019-10-22 13:07:02
【问题描述】:
我是 python 新手,对我正在编写的一些代码的异常处理有所了解。遇到了两种处理异常的方法,可以避免捕获键盘中断的问题,并想知道以下两种方法之间是否存在显着差异。
except (KeyboardInterrupt, SystemExit):
raise
except:
some code...
和
except Exception as e:
some code...
我了解到他们都避免捕获键盘中断,但我只是好奇他们是否只是在语法上不同并且做同样的事情,或者在某些情况下使用一个比另一个更有优势,谢谢。
【问题讨论】:
-
嗨,我认为它们本质上是相同的——两者都只捕获作为
Exception子类的异常。仅在第一个中,您还捕获了您立即提出的KeyboardInterrupt和SystemExit- 所以这是不必要的(如果您不对它们进行任何处理)。在第二种情况下,您将 Exception 实例保存为e,这对于某些日志记录等很有用。但您也可以在第一种情况下这样做。
标签: python-3.x exception