코드를 짜다 보면 항상 에러를 피할 수는 없어요.
파일을 못 찾는다거나, 숫자가 아닌 값을 나누려고 한다거나…
그럴 때 프로그램이 그냥 멈춰버리면 곤란하겠죠?
이럴 때 파이썬의 예외 처리(Exception Handling)를 사용하면
코드가 에러를 만나도 안전하게 실행될 수 있어요. 🚀
1️⃣ 예외(Exception)란?
프로그램 실행 중 발생하는 오류 상황
- 예시
- 0으로 나누기 시도: ZeroDivisionError
- 없는 변수 접근: NameError
- 잘못된 파일명: FileNotFoundError
📝 기본 구조: try-except
try:
실행할 코드
except 예외종류:
예외 발생 시 실행할 코드
- try: 에러가 발생할 수 있는 코드를 작성
- except: 에러가 나면 실행할 코드
🔹 예제 1: 기본 사용법
try:
num = int(input("숫자를 입력하세요: "))
print(f"10 / {num} = {10 / num}")
except:
print("오류가 발생했습니다!")
- 숫자가 아닌 값을 입력하거나 0으로 나누면, 프로그램이 멈추는 대신 예외 처리 메시지가 출력돼요.


🔹 예제 2: 특정 예외 처리
try:
num = int(input("숫자를 입력하세요: "))
print(10 / num)
except ZeroDivisionError:
print("0으로 나눌 수 없습니다!")
except ValueError:
print("숫자가 아닌 값을 입력하셨네요!")
- 특정 오류를 구분해서 더 친절하게 안내 가능


2️⃣ else와 finally
try:
print("나눗셈을 시도합니다.")
result = 10 / 2
except ZeroDivisionError:
print("0으로 나눌 수 없습니다!")
else:
print("오류 없이 실행되었습니다.")
finally:
print("프로그램 종료")
| 키워드 | 설명 |
| else | 오류 없이 실행될 때 동작 |
| finally | 오류 여부와 관계없이 항상 실행 |
🔥 실전 예제: 안전한 파일 읽기


📝 오늘의 정리
try-except로 에러가 나도 프로그램이 멈추지 않게 만들기
except로 구체적인 오류를 구분하면 더 안전한 코드 작성 가능
else, finally로 흐름을 세밀하게 제어할 수 있음
🔜 다음 글 예고
[파이썬] 클래스 기초 – 객체지향 프로그래밍(OOP) 첫걸음!
함수보다 한 단계 업그레이드된 객체지향 개념으로 넘어가 볼까요?
'SK-Rookies > 파이썬' 카테고리의 다른 글
| [파이썬] 클래스 상속 완전정복! super()로 더 깔끔하게 (0) | 2025.09.03 |
|---|---|
| [파이썬] 객체지향 프로그래밍 입문: 클래스와 객체 (0) | 2025.07.04 |
| [파이썬] 파일 입출력 I/O 완전정리 – open, read, write까지 (0) | 2025.07.04 |
| [파이썬] 꼭 알아야 할 내장 함수들 – len, range, type, list 등 (0) | 2025.07.04 |
| [파이썬] 함수: 코드 재사용의 마법 – def, return, 매개변수 (0) | 2025.07.04 |