파이썬에서 예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 오류를 우아하게 다루는 핵심 기법입니다. 이때 사용하는 대표적인 문법이 바로 try와 except 문입니다.
try와 except 문의 기본 동작 원리
try 절 안에 작성된 코드는 한 문장씩 순차적으로 실행됩니다. 만약 실행 도중 예외가 발생하면, try 블록의 나머지 부분은 건너뛰고 즉시 except 절로 제어가 넘어갑니다.
예제 코드
try:
'apple' + 6
except Exception:
print("Cannot concatenate 'str' and 'int' objects")실행 결과
Cannot concatenate 'str' and 'int' objects
위 예제에서는 문자열과 정수를 더하려다 TypeError가 발생합니다. 예외 처리를 하지 않으면 긴 트레이스백(Traceback) 오류 메시지가 출력되지만, try-except 문을 활용하면 위와 같이 간결하고 친절한 안내 메시지로 깔끔하게 대체할 수 있습니다.
finally 문으로 리소스 정리 보장하기
try 블록 뒤에 except 블록을 사용하는 것 외에도, 선택적으로 finally 블록을 추가할 수 있습니다.
finally 절은 예외 발생 여부와 관계없이 반드시 실행되어야 하는 정리(Clean-up) 작업을 정의하기 위해 사용됩니다. 즉, 예외가 발생했든 아니든 try 문을 빠져나가기 전에 항상 실행됩니다.
대표적인 활용 사례는 다음과 같습니다.
- 열려 있는 파일 닫기
- GUI 리소스 해제
- 네트워크 연결 종료
이러한 작업들을 finally 절에 배치하면 어떤 상황에서도 실행이 보장됩니다.
파일 처리 예제
try:
f = open("foo.txt", encoding='utf-8')
# 파일 읽기/쓰기 등 파일 작업 수행
finally:
f.close()위 코드는 파일 작업 중 예외가 발생하더라도 finally 절 덕분에 파일이 반드시 닫히도록 보장합니다. 이처럼 try, except, finally 문을 적절히 조합하면 예외 상황에도 안정적으로 동작하는 견고한 파이썬 프로그램을 작성할 수 있습니다.