문법 · Python · beginner

예외 기초: try · except · 입력 가드

파싱 실패를 잡고, 연습 코드에서 안전하게 기본값으로 돌리는 법.

배우기 · Python 문법 · 12분 · 7/9 · Python · 예외

이 트랙 목차 (9)
  1. 1. 들여쓰기·타입·변수: Python 기초
  2. 2. 조건·반복: if, for, while, range
  3. 3. 리스트·슬라이스·문자열
  4. 4. 딕셔너리·집합·컴프리헨션
  5. 5. 함수·기본인자·헬퍼 나누기
  6. 6. 자주 쓰는 표준: collections 맛보기
  7. 7. 예외 기초: try · except · 입력 가드
  8. 8. itertools 맛보기: chain · product · combinations
  9. 9. 정렬 key: 커스텀 비교

try / except

try:
    n = int(s)
except ValueError:
    n = 0

연습 문제에서는 입력이 깨졌을 때 기본값 또는 early return이 흔합니다.
광범위 except:는 버그를 삼키니, 가능하면 ValueError, KeyError처럼 구체적으로 잡으세요.

else / finally

try:
    x = int(s)
except ValueError:
    return None
else:
    return x * 2

else는 예외가 없을 때만 실행됩니다. finally는 정리 코드용입니다.

가드가 더 나을 때

if not s:
    return 0
if not s.isdigit():
    return 0

예외보다 조건이 읽기 쉬우면 가드를 택합니다.

문제 풀이

채점 입력은 보통 형식이 고정입니다.
그래도 로컬 실험에서 split 결과가 비는 경우를 대비하면 디버깅이 빨라집니다.

parts = line.split()
if len(parts) < 2:
    return ""

체크리스트

  1. 잡은 예외 타입이 구체적인가?
  2. 실패 시 반환이 문제 계약과 맞는가?
  3. except Exception으로 모든 버그를 숨기지 않았는가?

연습

연습장에서 문자열 리스트를 숫자로 바꾸되, 실패 항목은 건너뛰는 함수를 작성해 보세요.

한 줄

> 예외는 좁게 잡고, 입력은 먼저 가드한다.

raise

if n < 0:
    raise ValueError("n must be >= 0")

라이브러리·헬퍼에서는 raise가 맞고, 문제 solve에서는 보통 문제 명세의 반환값을 지키는 편이 채점에 맞습니다.

더 깊게

읽은 뒤 연습장에서 예제 코드를 한 번 타이핑해 보세요. 눈으로만 보면 하루 뒤 사라집니다.

관련 원리 카드와 문제 태그로 바로 이어서 풀면, 문법·패턴이 한 묶음으로 남습니다.

막히면 30분 규칙: 입력을 로그로 확인 → 기대/실제 한 줄 비교 → 그래도 안 되면 배우기 레슨으로 잠시 복귀.

관련 짧은 원리

관련 문제