예외 처리(exception handling)는 「오류가 났을 때 프로그램이 멈추지 않도록」 다루는 방법입니다.
파이썬에서는 「try-except」 구조로 「위험한 코드를 시도하고 오류가 나면 처리」하는 흐름을 만듭니다.
기본 형식: try: result = 10 / 0.
except ZeroDivisionError: print("0으로 나눌 수 없습니다").
「try 블록 안에서 오류가 나면 except 블록으로 점프」하는 흐름입니다.
오류가 안 나면 except 블록은 건너뜁니다.
여러 종류의 오류를 별도로 처리할 수 있습니다.
try: ...
except ValueError: ...
except FileNotFoundError: ...
except Exception as e: ...
— 마지막 「Exception as e」는 「위에 안 잡힌 모든 오류」를 잡아 변수 e에 저장합니다.
디버깅에 도움이 됩니다.
「else」와 「finally」가 추가로 있습니다.
try: ...
except: ...
else: 「오류 없을 때만 실행」 finally: 「오류 여부와 무관하게 항상 실행」.
finally는 자원 정리(파일 닫기·연결 종료)에 자주 쓰입니다.
예외 처리의 원칙은 「잡을 수 있는 예외만 잡고 나머지는 위로 던지기」입니다.
너무 광범위하게 「except:」으로 모든 오류를 무시하면 진짜 문제를 발견하지 못합니다.
또 자기만의 예외 클래스를 만들 수도 있습니다 — class MyError(Exception): pass 한 줄이면 됩니다.
한 줄 요약
try-except는 오류를 잡아 프로그램이 멈추지 않게 합니다.
여러 except로 오류 종류별 처리, else로 정상 시 실행, finally로 정리 작업을 할 수 있습니다.
더 알아볼 것
- 자주 만나는 표준 예외들
- raise — 예외 직접 던지기
- except의 안티패턴 — 너무 광범위한 잡기