[기초#7] 예외 처리(try~except): 에러에도 멈추지 않기

[기초#7] 예외 처리(try~except): 에러에도 멈추지 않기

한줄 요약:
프로그램이 에러로 멈추지 않게 하려면?
👉 “예외 처리”로 안전하게 감싸주면 된다! 💪


1. 예외 처리란?

에러(error) 가 발생해도 프로그램이 중단되지 않도록
미리 대비하는 방법이에요.

보통 코드를 실행하다가 에러가 나면
그 자리에서 프로그램이 “뚝!” 멈춰버리죠.
하지만 try ~ except 문을 사용하면
문제가 생겨도 부드럽게 넘어갈 수 있어요.


2. 기본 구조

try:
    # 에러가 날 수도 있는 코드
except:
    # 에러가 발생했을 때 실행할 코드

3. 예제 1: 나누기에서 에러 방지

try:
    x = int(input("숫자 1 입력: "))
    y = int(input("숫자 2 입력: "))
    print("결과:", x / y)
except:
    print("에러 발생! 0으로 나누거나 잘못 입력했어요.")

🪄 실행 예시:

숫자 1 입력: 10
숫자 2 입력: 0
에러 발생! 0으로 나누거나 잘못 입력했어요.

🚫 ZeroDivisionError(0으로 나누기)나
ValueError(잘못된 입력)도 막을 수 있어요!


4. 예제 2: 에러 종류별로 다르게 처리

try:
    num = int(input("숫자를 입력하세요: "))
    print(10 / num)
except ValueError:
    print("숫자가 아닌 값을 입력했어요 ❌")
except ZeroDivisionError:
    print("0으로는 나눌 수 없어요 ⚠️")
except Exception as e:
    print("알 수 없는 에러 발생:", e)

🪄 실행 예시:

숫자를 입력하세요: abc
숫자가 아닌 값을 입력했어요 ❌

5. finally: 무조건 실행되는 코드

try:
    f = open("test.txt", "r", encoding="utf-8")
    content = f.read()
except FileNotFoundError:
    print("파일이 존재하지 않아요 ❌")
finally:
    print("프로그램이 종료됩니다.")

🪄 결과:

파일이 존재하지 않아요 ❌
프로그램이 종료됩니다.

finally 블록은 에러가 나든 안 나든 항상 실행돼요.


6. else: 에러가 없을 때만 실행

try:
    num = int(input("숫자 입력: "))
except:
    print("입력 오류!")
else:
    print(f"{num}을(를) 입력했어요 ✅")

🪄 결과:

숫자 입력: 7
7을(를) 입력했어요 ✅

7. 자주 하는 실수

실수예시수정
except 없이 try만 사용try: ...try는 반드시 except와 함께 사용
에러 종류 모름except:가능하면 except ValueError처럼 구체적으로 지정
finally 안에서 파일 닫기 누락open()만 하고 close() 안 함finally 또는 with open() 사용

8. 연습문제

# 사용자에게 숫자 두 개 입력받아 나누기
# 잘못된 입력이나 0 입력 시 에러 처리

try:
    a = int(input("첫 번째 숫자: "))
    b = int(input("두 번째 숫자: "))
    result = a / b
except ValueError:
    print("숫자만 입력하세요!")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
else:
    print(f"결과: {result}")
finally:
    print("프로그램이 종료되었습니다.")

🪄 실행 결과 예시:

첫 번째 숫자: 10
두 번째 숫자: 0
0으로 나눌 수 없습니다.
프로그램이 종료되었습니다.

이전 강좌 👈 [기초#6] 파일 입출력: 저장하고 불러오는 법
다음 강좌 👉 [기초#8] 모듈과 패키지: 코드 재활용의 진짜 시작

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.