파이썬에서 예외 처리는 프로그램의 안정성을 높이는 데 매우 중요합니다.
이번 글에서는 try, except, else, finally의 각 역할과 활용법을 예제와 함께 정리해보겠습니다.
1. try–finally: 항상 실행되는 마무리 처리
try:
print("파일 열기")
raise ValueError("오류 발생")
finally:
print("파일 닫기")
위 코드는 예외가 발생해도 finally 블록이 반드시 실행된다는 것을 보여줍니다.
예외가 발생하든 안 하든 꼭 실행해야 하는 정리 작업(ex. 파일 닫기, DB 연결 종료 등)에 유용합니다.
2. try–except–else–finally: 복합 예외 처리 구문
파이썬에서는 다음과 같이 예외 처리를 구성할 수 있습니다.
try:
# 예외 발생 가능성 있는 코드
except SomeError:
# 예외 발생 시 실행
else:
# 예외가 발생하지 않았을 때 실행
finally:
# 예외 발생 여부 관계 없이 항상 실행
예제 코드
def divide(a, b):
try:
result = a / b
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
else:
print("결과:", result)
finally:
print("계산 종료")
divide(10, 2)
# 결과: 5.0
# 계산 종료
divide(5, 0)
# 0으로 나눌 수 없습니다.
# 계산 종료
3. 각 블록의 의미
| 블록 | 역할 |
| try | 예외가 발생할 수 있는 코드를 작성합니다. |
| except | 예외가 발생했을 때 처리 로직을 정의합니다. |
| else | 예외 없이 성공했을 때 실행됩니다. (선택적) |
| finally | 예외 발생 여부와 상관없이 항상 실행됩니다. |
정리하면
- finally는 자원 정리에 꼭 사용하세요.
- else는 예외가 없을 때만 실행되는 추가 처리 로직에 적합합니다.
- 구조적으로 깔끔한 예외 처리 코드는 코드의 신뢰성과 가독성을 높입니다
'파이썬 > 기초 프로그래밍' 카테고리의 다른 글
| 반복 가능한 객체와 흐름 제어 키워드 (return, break, continue, pass)의 동작 방식 정리 (0) | 2025.06.22 |
|---|---|
| return, break, continue, pass 그리고 finally의 관계 완벽 정리 (0) | 2025.06.22 |
| 리스트 컴프리헨션과 제너레이터의 메모리 사용 차이! (0) | 2025.06.22 |
| 제너레이터 vs 이터레이터, 쉽게 이해하기 (0) | 2025.06.22 |
| 리스트 컴프리헨션, 어디까지 써야 똑똑한 걸까? (0) | 2025.06.22 |