如果我有以下结构:
try:
do_something_dangerous()
except Exception1:
handle_exception1()
handle_all_exceptions()
except Exception2:
handle_exception2()
handle_all_exceptions()
...
如果我有很多except
子句,不想在每个子句中调用handle_all_exceptions
,那么最Pythonic的方法是什么?也许有一种简单的方法可以在finally
子句内部确定是否发生了异常?
type(exc)
和isinstance
。@nosklo 建议使用raise
可能是最好的,但它需要两个try
子句。 - sanyasshraise
看起来很有趣,我会测试一下。 - sanyasshexcept
子句是一种类型检查,与isinstance()
相同。结果也是相同的:您正在使用存储在对象的__class__
中的信息来确定控制流程。 - nosklo