我們常常想在沒有觸發(fā)異常的時候執(zhí)行一些代碼。這可以很輕松地通過一個else
從句來達到。
有人也許問了:如果你只是想讓一些代碼在沒有觸發(fā)異常的情況下執(zhí)行,為啥你不直接把代碼放在try
里面呢?
回答是,那樣的話這段代碼中的任意異常都還是會被try
捕獲,而你并不一定想要那樣。
大多數(shù)人并不使用else
從句,而且坦率地講我自己也沒有大范圍使用。這里是個例子:
try:
print('I am sure no exception is going to occur!')
except Exception:
print('exception')
else:
# 這里的代碼只會在try語句里沒有觸發(fā)異常時運行,
# 但是這里的異常將 *不會* 被捕獲
print('This would only run if no exception occurs. And an error here '
'would NOT be caught.')
finally:
print('This would be printed in every case.')
# Output: I am sure no exception is going to occur!
# This would only run if no exception occurs.
# This would be printed in every case.
else
從句只會在沒有異常的情況下執(zhí)行,而且它會在finally
語句之前執(zhí)行。