Python 기초집LESSON 14
예외 처리: try, except, finally
난이도입문
예상 시간30분
선수지식이전 강의
14강. 예외 처리: try, except, finally
1. 이번 강의에서 해결할 문제
사용자 입력과 파일은 언제든 잘못될 수 있습니다. 모든 오류를 숨기지 않고 복구 가능한 문제만 구체적으로 처리해 이해 가능한 메시지를 제공합니다.
2. 학습 목표
3. 핵심 개념
예외가 발생하면 현재 흐름을 중단하고 맞는 except를 찾습니다. else는 오류가 없을 때, finally는 성공 여부와 상관없이 실행됩니다. except Exception으로 모두 숨기면 프로그래밍 오류도 정상처럼 보일 수 있습니다.
4. 단계별 코드 예시
파일 경로: C:\dev\game-log-analyzer\battle_analyzer\io.py
battle_analyzer/io.py
from pathlib import Path
def read_damage_lines(path: Path) -> list[int]:
try:
text = path.read_text(encoding="utf-8")
damages = [int(line) for line in text.splitlines() if line.strip()]
except FileNotFoundError as error:
raise ValueError(f"입력 파일을 찾을 수 없습니다: {path}") from error
except ValueError as error:
raise ValueError("피해량은 한 줄에 하나의 정수여야 합니다.") from error
else:
return damages
finally:
print(f"입력 확인 완료: {path}")
파일 경로: C:\dev\game-log-analyzer\main.py
main.py
from pathlib import Path
from battle_analyzer.io import read_damage_lines
try:
print(read_damage_lines(Path("data/damages.txt")))
except ValueError as error:
print(f"분석 실패: {error}")
PowerShell · 실행
py -3.13 .\main.py
5. 코드가 동작하는 이유
낮은 수준의 파일·변환 오류를 사용자 의미의 ValueError로 바꾸고 from error로 원인을 연결합니다. 호출자는 하나의 공개 오류 형식을 처리합니다. finally는 예외가 다시 발생해도 실행됩니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2예외 처리: try, except, finally 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
14강. 예외 처리: try, except, finally 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.