Untuk kemungkinan blok coba-akhirnya dengan Python, apakah dijamin finally
blok tersebut akan selalu dieksekusi?
Misalnya, saya kembali saat berada di dalam except
blok:
try:
1/0
except ZeroDivisionError:
return
finally:
print("Does this code run?")
Atau mungkin saya meminta kembali Exception
:
try:
1/0
except ZeroDivisionError:
raise
finally:
print("What about this code?")
Pengujian menunjukkan yang finally
dieksekusi untuk contoh di atas, tetapi saya membayangkan ada skenario lain yang belum saya pikirkan.
Apakah ada skenario di mana finally
blok bisa gagal dieksekusi dengan Python?
finally
tidak akan berjalan. Atau sama jika komputer macet sebelumnya: D
finally
tidak akan berfungsi jika kabel daya dicabut dari dinding.
finally
gagal untuk mengeksekusi atau "mengalahkan tujuannya" adalah selama loop tak terbatas,sys.exit
atau interupsi paksa. Status dokumentasi yangfinally
selalu dieksekusi, jadi saya akan melakukannya.