สำหรับการบล็อกการลองสุดท้ายที่เป็นไปได้ใน Python จะรับประกันfinally
ได้หรือไม่ว่าบล็อกจะถูกเรียกใช้งานเสมอ
ตัวอย่างเช่นสมมติว่าฉันกลับมาขณะอยู่ในexcept
บล็อก:
try:
1/0
except ZeroDivisionError:
return
finally:
print("Does this code run?")
หรือบางทีฉันอาจจะเพิ่มException
:
try:
1/0
except ZeroDivisionError:
raise
finally:
print("What about this code?")
การทดสอบแสดงให้เห็นว่ามีfinally
การดำเนินการสำหรับตัวอย่างข้างต้น แต่ฉันคิดว่ามีสถานการณ์อื่น ๆ ที่ฉันไม่ได้นึกถึง
มีสถานการณ์ใดบ้างที่finally
บล็อกไม่สามารถดำเนินการใน Python ได้
finally
จะไม่ทำงาน หรือเหมือนกันถ้าคอมพิวเตอร์ขัดข้องก่อน: D
finally
จะไม่ทำงานหากสายไฟขาดจากผนัง
finally
ล้มเหลวในการดำเนินการหรือ "พ่ายแพ้จุดประสงค์" คือระหว่างการวนซ้ำที่ไม่มีที่สิ้นสุดsys.exit
หรือการขัดจังหวะแบบบังคับ เอกสารระบุว่าfinally
จะดำเนินการเสมอดังนั้นฉันไปกับที่