파이썬에서는 예외 처리 외에도 return, break, continue, pass 같은 흐름 제어 키워드가 많이 사용됩니다.
이러한 키워드와 try–finally 구문이 어떻게 상호작용하는지 이해하면, 더 안정적이고 예측 가능한 코드를 작성할 수 있습니다.
1. return과 finally: 반환 전에 마무리 작업은 꼭 실행된다
def func():
try:
print("작업 수행")
return "결과 반환"
finally:
print("반드시 실행되는 마무리")
print(func())
결과
작업 수행
반드시 실행되는 마무리
결과 반환
return이 있어도 finally는 반드시 실행됩니다.
예외, 리턴, 종료… 어떤 상황에서도 finally는 실행됩니다
2. break와 finally: 루프를 빠져나가도 finally는 실행된다
def test():
while True:
try:
print("반복 중...")
break
finally:
print("break 전에 반드시 실행됨")
test()
결과
반복 중...
break 전에 반드시 실행됨
3. continue와 finally: 다음 반복 전에도 마무리된다
for i in range(3):
try:
print(f"{i} 처리 중")
continue
finally:
print(f"{i}에 대한 마무리 작업")
결과
0 처리 중
0에 대한 마무리 작업
1 처리 중
1에 대한 마무리 작업
2 처리 중
2에 대한 마무리 작업
continue를 만나도 finally는 먼저 실행되고 → 그다음 루프 반복
4. pass는 아무것도 하지 않지만 흐름을 막지는 않는다
try:
print("작업 수행")
pass
finally:
print("pass가 있어도 finally는 실행")
pass는 단순히 **“아무 동작도 하지 않음”**을 의미하는 자리 표시자일 뿐입니다.
예외 흐름이나 finally와는 직접적인 영향이 없습니다.
정리하면
| 키워드 | 설명 | finally 실행 여부 |
| return | 함수 실행을 종료하고 값을 반환함 | 실행됨 |
| break | 루프 종료 | 실행됨 |
| continue | 다음 루프로 넘어감 | 실행됨 |
| pass | 아무 동작 없음 | 실행됨 |
finally는 파이썬에서 "무슨 일이 있어도 반드시 실행되어야 할 작업"을 보장하는 블록입니다.
예외 발생, 루프 제어, 함수 반환 등 어떤 흐름에서도 빠뜨리지 않고 실행된다는 점에서 매우 중요합니다.
'파이썬 > 기초 프로그래밍' 카테고리의 다른 글
| 기능을 코드로 추상화 개념 (0) | 2025.06.22 |
|---|---|
| 반복 가능한 객체와 흐름 제어 키워드 (return, break, continue, pass)의 동작 방식 정리 (0) | 2025.06.22 |
| 파이썬 예외 처리 구문 완전 정복: try, except, else, finally (0) | 2025.06.22 |
| 리스트 컴프리헨션과 제너레이터의 메모리 사용 차이! (0) | 2025.06.22 |
| 제너레이터 vs 이터레이터, 쉽게 이해하기 (0) | 2025.06.22 |