其他

只有 try 块中的代码没有引发异常时,才会运行 else 块中的代码。如果你在抛出异常时不想运行某些代码,但是你不希望捕获该代码抛出的异常,那么这非常有用。

例如:

try:
    data = {1: 'one', 2: 'two'}
    print(data[1])
except KeyError as e:
    print('key not found')
else:
    raise ValueError()
# Output: one
# Output: ValueError

请注意,这种 else:不能与 if 结合使用 else-clause 启动 elif。如果你有一个以下 if 它需要保持缩进到 else:

try:
    ...
except ...:
    ...
else:
    if ...:
        ...
    elif ...:
        ...
    else:
        ...