尚方宝剑之说
的声明else如果执行从try-如果没有例外的话。老实说,我从来没有发现需要。然而,处理异常注:使用ASER子句比向try子句添加额外代码更好,因为它避免意外捕获未被try保护的代码引发的异常.除了陈述。因此,如果您有一个方法,例如,可以抛出IOError,您希望捕获它引发的异常,但是如果第一个操作成功了,您还需要做一些其他的事情,而您别要从该操作中捕获ioError,可以编写如下内容:try:
operation_that_can_throw_ioerror()except IOError:
handle_the_exception_somehow()else:
# we don't want to catch the IOError if it's raised
another_operation_that_can_throw_ioerror()finally:
something_we_always_need_to_do()如果你把another_operation_that_can_throw_ioerror()后operation_that_can_throw_ioerror,except会发现第二个电话的错误。如果你把它放在try块,它将始终运行,直到finally..这个else让你确保第二个操作只有在没有例外的情况下才能运行,它会在finally布洛克任何IOError它不会在这里被抓到