Skip to Content
💻 코리아IT아카데미 신촌 - 프로그래밍 학습 자료
Python 프로그래밍Unit 7: 예외처리와 디버깅Topic 2: try-except로 에러 처리하기

Topic 2: try-except로 에러 처리하기 🛡️

🎯 학습 목표

에러가 발생해도 프로그램이 멈추지 않고 계속 실행되도록 만드는 방법을 배워요!

  • try-except 구조 이해하기
  • 다양한 에러 처리 방법 익히기
  • 사용자 친화적인 프로그램 만들기

🤹 try-except: 에러를 잡아라!

try-except는 에러가 발생할 수 있는 코드를 안전하게 실행하는 방법이에요. 마치 안전망을 설치하는 것과 같아요!

기본 구조

try: # 에러가 발생할 수 있는 코드 위험한_코드() except: # 에러가 발생했을 때 실행할 코드 print("에러가 발생했어요!")

실제 예제로 배워보기

# 에러가 발생하는 코드 number = int(input("숫자를 입력하세요: ")) print(f"입력한 숫자는 {number}입니다")

만약 사용자가 “abc”를 입력하면 프로그램이 멈춰버려요! 😱

# try-except로 안전하게 처리하기 try: number = int(input("숫자를 입력하세요: ")) print(f"입력한 숫자는 {number}입니다") except: print("숫자가 아닌 것을 입력했어요! 다시 시도해주세요.")

이제 에러가 발생해도 프로그램이 멈추지 않아요! 🎉

🎯 특정 에러만 잡기

모든 에러를 똑같이 처리하는 것보다, 에러 종류에 따라 다르게 처리하는 게 좋아요.

ValueError 처리하기

try: age = int(input("나이를 입력하세요: ")) print(f"당신은 {age}살이군요!") except ValueError: print("나이는 숫자로 입력해주세요!")

여러 종류의 에러 처리하기

try: numbers = [1, 2, 3] index = int(input("인덱스를 입력하세요 (0-2): ")) result = numbers[index] print(f"선택한 숫자: {result}") except ValueError: print("숫자를 입력해주세요!") except IndexError: print("0부터 2 사이의 숫자를 입력해주세요!")

🌟 else와 finally 활용하기

else: 에러가 없을 때만 실행

try: number = int(input("숫자를 입력하세요: ")) except ValueError: print("올바른 숫자가 아니에요!") else: # 에러가 발생하지 않았을 때만 실행 print(f"제곱: {number ** 2}")

finally: 무조건 실행

try: file = open("data.txt", "r") content = file.read() except FileNotFoundError: print("파일을 찾을 수 없어요!") finally: # 에러 발생 여부와 관계없이 항상 실행 print("프로그램을 종료합니다.") # 파일이 열려있다면 닫기 if 'file' in locals(): file.close()

💪 실용적인 예제

나눗셈 계산기

def safe_divide(): try: num1 = float(input("첫 번째 숫자: ")) num2 = float(input("두 번째 숫자: ")) result = num1 / num2 print(f"{num1} ÷ {num2} = {result}") except ValueError: print("숫자를 입력해주세요!") except ZeroDivisionError: print("0으로는 나눌 수 없어요!") # 함수 실행 safe_divide()

메뉴 선택 프로그램

def show_menu(): menu = ["피자", "치킨", "햄버거", "김밥"] print("=== 메뉴판 ===") for i, item in enumerate(menu): print(f"{i+1}. {item}") try: choice = int(input("메뉴 번호를 선택하세요: ")) selected = menu[choice - 1] print(f"{selected}를 선택하셨습니다!") except ValueError: print("번호로 입력해주세요!") except IndexError: print("메뉴에 있는 번호를 선택해주세요!") # 프로그램 실행 show_menu()

💡 퀴즈: try-except 이해도 체크

Q1. 다음 코드의 문제점은 무엇일까요?

try: number = int(input("숫자 입력: ")) result = 10 / number except: print("에러 발생!")

정답: 모든 에러를 똑같이 처리하고 있어요!

  • ValueError(문자 입력)와 ZeroDivisionError(0 입력)를 구분해서 처리하는 게 좋아요
  • 사용자에게 더 정확한 안내를 줄 수 있어요

Q2. else는 언제 실행될까요?

try: x = 5 y = 2 result = x / y except ZeroDivisionError: print("0으로 나눌 수 없어요!") else: print("계산 성공!")

정답: “계산 성공!”이 출력돼요!

  • try 블록에서 에러가 발생하지 않았으므로 else 블록이 실행돼요
  • else는 에러가 없을 때만 실행되는 코드를 넣는 곳이에요

✅ try-except 마스터 체크리스트

✅ try-except 마스터 체크리스트

🚀 다음 단계

이제 에러를 처리할 수 있게 되었어요! 다음에는 프로그램의 버그를 찾고 수정하는 디버깅 기술을 배워볼게요!

Last updated on