콘텐츠로 이동

예외 처리 - 오류에도 멈추지 않는 프로그램

🎯 이 장에서 배우는 것

  • [ ] 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: 모두 콜론 필수!

✅ 점검하기

  1. try-except는 무엇에 비유할 수 있나요?
정답 확인서커스의 안전망 - 실수해도 다치지 않게 보호
  1. 센서 오류 시 어떻게 대응하면 좋을까요?
정답 확인마지막 정상값을 사용해서 프로그램을 계속 실행

🔗 다음 장 미리보기

예외 처리로 안전한 코드를 배웠어요! 다음 장에서는 함수 기초를 배워 코드를 깔끔하게 정리하는 방법을 알아봅니다. 🎯