예외 처리 - 오류에도 멈추지 않는 프로그램¶
🎯 이 장에서 배우는 것¶
- [ ] try-except 구문으로 예외를 처리할 수 있다
- [ ] 센서 오류 시 안전하게 대응하는 코드를 작성할 수 있다
⏱️ 예상 학습 시간: 약 15분
📚 핵심 개념¶
개념: 예외 처리 (Exception Handling)¶
비유로 시작해볼게요!
서커스의 안전망을 떠올려 보세요. 곡예사가 줄 위에서 실수해도 안전망 덕분에 다치지 않고 다시 시도할 수 있죠.
flowchart LR
A[코드 실행] --> B{오류 발생?}
B -->|No| C[정상 진행]
B -->|Yes| D[안전망으로 이동]
D --> E[대응 처리]
E --> C
정확한 정의: try-except는 오류가 발생해도 프로그램이 멈추지 않게 해주는 안전망입니다.
🔨 따라하기¶
Step 1: 오류 없이 멈추는 프로그램 (문제 상황)¶
코드:
# 센서가 이상한 값을 보내면?
sensor_value = "오류"
temperature = int(sensor_value) # 💥 여기서 멈춤!
print("온도:", temperature)
실행 결과:
ValueError: invalid literal for int()...
프로그램 강제 종료! 😱
Step 2: 안전망 추가하기¶
코드:
sensor_value = "오류"
last_good_value = 25 # 마지막 정상값 저장
try:
temperature = int(sensor_value)
except:
print("⚠️ 센서 오류! 마지막 정상값 사용")
temperature = last_good_value
print("온도:", temperature)
실행 결과:
⚠️ 센서 오류! 마지막 정상값 사용
온도: 25
💡 잠깐! 프로그램이 멈추지 않고 계속 실행되는 게 보이시나요? 이게 바로 예외 처리의 힘이에요!
📝 전체 코드¶
# 센서 읽기 - 안전한 버전
last_good_value = 25
sensor_value = "오류" # 실제로는 센서에서 읽어옴
try:
temperature = int(sensor_value)
last_good_value = temperature # 성공하면 저장
except:
print("⚠️ 센서 오류! 마지막 정상값 사용")
temperature = last_good_value
print("현재 온도:", temperature, "°C")
⚠️ 주의할 점¶
| 실수 | 해결법 |
|---|---|
try: 뒤에 콜론 빼먹음 |
try: , except: 모두 콜론 필수! |
✅ 점검하기¶
- try-except는 무엇에 비유할 수 있나요?
정답 확인
서커스의 안전망 - 실수해도 다치지 않게 보호- 센서 오류 시 어떻게 대응하면 좋을까요?
정답 확인
마지막 정상값을 사용해서 프로그램을 계속 실행🔗 다음 장 미리보기¶
예외 처리로 안전한 코드를 배웠어요! 다음 장에서는 함수 기초를 배워 코드를 깔끔하게 정리하는 방법을 알아봅니다. 🎯