파이썬 예외 처리: 코드를 안전하게 실패하도록 만들기

발행: (2026년 6월 8일 PM 05:45 GMT+9)
4 분 소요
원문: Dev.to

출처: Dev.to

still-purrfect


프로그램이 오류에 직면하면 어떻게 될까요?

준비가 되어 있지 않다면… 그냥 멈춥니다.

그리고 이것은 실제 애플리케이션에서 감당할 수 있는 일이 아닙니다.

지금까지 우리는 데이터를 저장하고, 결정을 내리며, 동작을 반복하고, 파일까지 다루는 프로그램을 작성하는 방법을 배웠습니다.

하지만 현실에서는 상황이 항상 기대대로 진행되지 않습니다.

사용자가 잘못된 입력을 하거나, 파일이 없을 수도 있고, 계산이 실패할 수도 있습니다.

이때 예외 처리가 필요합니다.

🔹 예외란?

예외는 프로그램이 실행되는 동안 발생하는 오류입니다.

예를 들어:

print(10 / 0)

Enter fullscreen mode

Exit fullscreen mode

0으로 나눌 수 없기 때문에 오류가 발생합니다.

예외를 처리하지 않으면 프로그램은 즉시 크래시됩니다.

🔹 try와 except 사용하기

Python에서는 tryexcept를 사용해 오류를 처리할 수 있습니다.

try:
    print(10 / 0)
except:
    print("Something went wrong")

Enter fullscreen mode

Exit fullscreen mode

프로그램이 크래시되는 대신 오류를 부드럽게 처리합니다.

🔹 특정 오류 처리하기

특정 유형의 오류만 따로 처리할 수도 있습니다.

try:
    number = int(input("Enter a number: "))
    print(10 / number)
except ZeroDivisionError:
    print("You cannot divide by zero")
except ValueError:
    print("Please enter a valid number")

Enter fullscreen mode

Exit fullscreen mode

이제 프로그램은 정확히 어떤 문제가 발생했는지 알 수 있습니다.

🔹 finally 블록

항상 실행되는 finally 블록도 있습니다.

try:
    print("Trying something...")
except:
    print("Error occurred")
finally:
    print("This will always run")

Enter fullscreen mode

Exit fullscreen mode

보통 파일을 닫는 등 정리 작업에 사용됩니다.

💡 예외 처리가 중요한 이유

예외 처리를 하면 프로그램이:

  • 더 안정적이 된다
  • 사용자 친화적이 된다
  • 크래시 가능성이 줄어든다

실제 사용을 위한 준비가 됩니다.
실제 애플리케이션에서는 오류를 피하는 것이 아니라 관리합니다.

🌱 챌린지

다음과 같은 프로그램을 작성하세요:

  • 사용자에게 숫자를 입력받는다
  • 100을 그 숫자로 나눈다

다음 예외를 처리한다:

  • ZeroDivisionError (0으로 나누기)
  • ValueError (잘못된 입력)

프로그램이 어떤 입력을 받더라도 절대 크래시되지 않도록 하세요.

다음에는 날짜와 시간을 살펴볼 예정이며, 여기서는 프로그램이 일정이나 타임스탬프와 같은 실제 시간 기반 데이터를 다루는 방법을 배웁니다.

0 조회
Back to Blog

관련 글

더 보기 »