topic★★★★★난이도 · 약 20분
에러 처리 — try/except로 튼튼하게
try/except로 에러가 나도 프로그램이 멈추지 않게 한다. AI 파이프라인의 생명줄.
#try#except#ValueError#KeyError#IndexError#TypeError
왜 배우는가
수백만 줄의 데이터를 처리하다가 한 줄에서 에러가 나면 전체가 멈춘다. 실제 AI 파이프라인에서 try/except는 생명줄이다. 나쁜 데이터 하나 때문에 전체 학습이 중단되지 않도록 막아준다.
AI 학습 데이터 수백만 줄을 처리하다가 딱 한 줄에서 깨진 JSON이 나오면? 에러 처리 없이는 전체가 멈춥니다. 실제 AI 파이프라인에서 `try/except`는 생명줄입니다. 나쁜 데이터 하나 때문에 전체 학습이 중단되지 않도록 막아줍니다.
try/except로 프로그램의 비상구를 만듭니다
try 블록에서 에러가 발생하면 except 블록이 실행되고, 프로그램은 멈추지 않고 계속 진행한다.
Python에서 자주 만나는 에러 타입들
| 에러 타입 | 발생 상황 |
|---|---|
| ValueError | 값 변환 실패 (int('hello')) |
| KeyError | 딕셔너리 키 없음 |
| IndexError | 리스트 범위 초과 |
| TypeError | 잘못된 타입 연산 |
일부러 에러를 내고 try/except로 잡아봅시다
as e로 에러 객체를 받아 메시지를 출력할 수 있다. raise로 직접 에러를 발생시킬 수도 있다.
| try/except 구조 | 설명 |
|---|---|
| try | 에러가 발생할 수 있는 코드를 감싸는 블록 |
| except | 에러 발생 시 대신 실행되는 블록 (프로그램 계속 진행) |
| 에러 타입 지정 | except ValueError: — 특정 에러만 잡을 수 있음 |
| 자주 만나는 에러 4종 | 설명 |
|---|---|
| ValueError | 값 변환 실패 — int("hello") 불가 |
| KeyError | 딕셔너리에 없는 키 접근 |
| IndexError | 리스트 범위 초과 접근 |
| TypeError | 잘못된 타입 연산 — "hello" + 5 불가 |
AI 파이프라인에서 try/except는 생명줄 — 나쁜 데이터 하나로 전체가 멈추지 않도록!
실기 드릴 2문항
check_circle실기 드릴 · OX
try/except를 쓰면 에러가 나도 프로그램이 멈추지 않는다
edit실기 드릴 · 단답형
int("hello")를 실행하면 어떤 에러가 발생하는가?