其他

只有 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:
        ...