Python에서 가능한 모든 try-finally 블록에 대해 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항상 실행됩니다, 그래서 나는 그와 함께 갈 것입니다.