Untuk kemungkinan blok coba-akhirnya dengan Python, apakah dijamin finallyblok tersebut akan selalu dieksekusi?
Misalnya, saya kembali saat berada di dalam exceptblok:
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 finallydieksekusi untuk contoh di atas, tetapi saya membayangkan ada skenario lain yang belum saya pikirkan.
Apakah ada skenario di mana finallyblok bisa gagal dieksekusi dengan Python?
finallytidak akan berjalan. Atau sama jika komputer macet sebelumnya: D
finallytidak akan berfungsi jika kabel daya dicabut dari dinding.
finallygagal untuk mengeksekusi atau "mengalahkan tujuannya" adalah selama loop tak terbatas,sys.exitatau interupsi paksa. Status dokumentasi yangfinallyselalu dieksekusi, jadi saya akan melakukannya.