Ch.2 Python 첫걸음 — 데이터를 다루다
에러 처리 — try/except로 튼튼하게
try/except로 에러를 안전하게 처리한다자주 만나는 에러 타입을 안다
프로그램이 갑자기 멈추면?
수백만 줄의 데이터를 처리하다가 한 줄에서 에러가 나면 전체가 멈춥니다. 에러를 '처리'하면 계속 진행할 수 있습니다.
에러가 나도 프로그램을 멈추지 않으려면?
try/except — 프로그램의 비상구를 만듭니다.
article
핵심 내용
AI 학습 데이터 수백만 줄을 처리하다가 딱 한 줄에서 깨진 JSON이 나오면? 에러 처리 없이는 전체가 멈춥니다. 실제 AI 파이프라인에서 `try/except`는 생명줄입니다. 나쁜 데이터 하나 때문에 전체 학습이 중단되지 않도록 막아줍니다.
try/except로 프로그램의 비상구를 만듭니다
def safe_divide(a, b):
try:
return a / b
except ZeroDivisionError:
print("0으로 나눌 수 없습니다!")
return None
print(safe_divide(10, 3)) # 3.333...
print(safe_divide(10, 0)) # 에러 메시지 + NonePython에서 자주 만나는 에러 타입들
일부러 에러를 내고 try/except로 잡아봅시다
# 에러를 일부러 내고 잡아보자!
# 1. ValueError 잡기
try:
number = int("hello")
except ValueError as e:
print(f"❌ ValueError 발생: {e}")
# 2. KeyError 잡기
data = {"name": "GPT-4", "version": 4}
try:
print(data["price"])
except KeyError as e:
print(f"❌ KeyError 발생: {e} 키가 없음")
# 3. ZeroDivisionError 잡기
try:
result = 10 / 0
except ZeroDivisionError:
print("❌ 0으로 나눌 수 없습니다")
# 4. 안전한 API 호출 패턴
def safe_api_call(prompt):
try:
if len(prompt) > 100:
raise ValueError("프롬프트가 너무 깁니다")
return f"응답: {prompt[::-1]}" # 거꾸로 답하는 AI
except ValueError as e:
return f"에러: {e}"
print(f"\n{safe_api_call('Hello!')}")
print(safe_api_call("x" * 200))try/except를 쓰면 에러가 나도 프로그램이 멈추지 않는다
int("hello")를 실행하면 어떤 에러가 발생하는가?
에러 처리
key
핵심 용어
❌
ValueError
값 변환 실패 (int('hello'))
🔑
KeyError
딕셔너리 키 없음
📏
IndexError
리스트 범위 초과
🏷️
TypeError
잘못된 타입 연산
edit_note
정리 노트
에러 처리 — try/except로 튼튼하게
try/except 구조
- try
- 에러가 발생할 수 있는 코드를 감싸는 블록
- except
- 에러 발생 시 대신 실행되는 블록 (프로그램 계속 진행)
- 에러 타입 지정
- except ValueError: — 특정 에러만 잡을 수 있음
자주 만나는 에러 4종
- ValueError
- 값 변환 실패 — int("hello") 불가
- KeyError
- 딕셔너리에 없는 키 접근
- IndexError
- 리스트 범위 초과 접근
- TypeError
- 잘못된 타입 연산 — "hello" + 5 불가
★
AI 파이프라인에서 try/except는 생명줄 — 나쁜 데이터 하나로 전체가 멈추지 않도록!
image
시각 자료
다이어그램: py-scene-try-except
check_circle
핵심 정리
- 1try/except → 에러에 강한 프로그램
- 2ValueError, KeyError, IndexError, TypeError
퀴즈와 인터랙션으로 더 깊이 학습하세요
play_circle인터랙티브 레슨 시작