파이썬 예외 처리: 예상한 입력 오류만 복구하기
try-except는 모든 오류를 숨기는 장치가 아니라, 예상한 실패를 구분하고 복구하거나 원인을 전달하는 구조입니다.
어떤 상황에서 적용하나요?
빈 입력과 숫자 변환 실패를 처리하는 작은 예제입니다. 예외 범위를 좁히면 프로그래밍 오류까지 정상적인 빈 값으로 바꾸는 문제를 줄일 수 있습니다.
검증 범위: 아래 코드는 외부 서비스에 요청하지 않는 로컬 예제입니다. 실제 서비스 연결은 별도로 검증해야 합니다.
최소 예제로 동작 확인하기
def parse_count(raw):
try:
value = int(raw)
except (TypeError, ValueError) as exc:
raise ValueError("건수는 정수로 입력하세요") from exc
if value < 0:
raise ValueError("음수 건수는 허용하지 않습니다")
return value
assert parse_count("12") == 12
for bad in ["", "abc", None, "-1"]:
try:
parse_count(bad)
except ValueError:
pass
else:
raise AssertionError("잘못된 입력을 허용했습니다")
print("입력 오류 검증 완료")
결과는 어떻게 확인하나요?
정상 입력은 정수로 변환되고 네 종류의 잘못된 입력은 ValueError가 됩니다. from exc는 원래 변환 오류의 원인을 보존합니다. 화면에는 간단한 메시지를 보여 주더라도 내부 로그에서는 원인을 추적할 수 있어야 합니다.
실제 업무에 적용할 때 확인할 점
except Exception: pass는 실패를 감추기 쉽습니다. 네트워크 시간 초과, 인증 오류, 데이터 구조 변경을 같은 방식으로 무조건 재시도하지 마세요. 종료·정리 작업은 finally나 해당 자원의 컨텍스트 관리자를 검토합니다.
공식 자료와 다음 단계
관련 공식 문서에서 사용하는 버전의 기능과 제한을 확인하세요.
학습 경로: 업무 자동화 가이드 · 입력 오류 처리
작성: 로그 · 2026-10-17 수정: 확인되지 않은 경험담과 성능 보장 표현을 제거하고 예제·적용 조건·공식 근거를 보완했습니다.
댓글
댓글 쓰기