สำหรับการบล็อกการลองสุดท้ายที่เป็นไปได้ใน 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จะดำเนินการเสมอดังนั้นฉันไปกับที่