본문 바로가기
IT/파이썬 Python

코딩 에러? 파이썬 예외 처리 완벽 가이드

by SidePower 2024. 11. 1.

 

코딩을 하다 보면 종종 예기치 못한 오류가 발생하죠.

예를 들어, 사용자가 문자 대신 숫자를 입력해야 하는데 잘못 입력하면 프로그램이 멈춰버릴 수 있어요.

파이썬에서는 이런 상황을 예외 처리(Exception Handling)로 깔끔하게 해결할 수 있어요.

오늘은 try-except 문을 사용해 프로그램이 에러로 멈추지 않고 부드럽게 작동하도록 만들어봅시다.

 

프로그램이 멈추지 않게 하는 예외 처리 기법

예외 처리는 try-except 블록으로 구성됩니다.

try 안에 예외가 발생할 가능성이 있는 코드를 쓰고,

오류가 발생하면 except가 그 오류를 잡아내요.

# 간단한 예외 처리 예제
try:
    number = int(input("숫자를 입력하세요: "))
    print(f"입력한 숫자는 {number}입니다.")
except ValueError:
    print("잘못된 입력입니다. 숫자를 입력해야 해요!")

 

자주 발생하는 오류들

ZeroDivisionError: 0으로 나눌 때 발생

ValueError: 잘못된 값이 입력될 때 발생

IndexError: 리스트의 범위를 벗어날 때 발생

FileNotFoundError: 없는 파일을 열려고 할 때 발생

예제 : 숫자 입력받아 계산하는 프로그램에 예외 처리 추가하기

아래는 두 숫자를 나눗셈하는 프로그램인데,

나눗셈에서 자주 발생하는 ZeroDivisionError를 처리해볼게요.

try:
    a = int(input("첫 번째 숫자를 입력하세요: "))
    b = int(input("두 번째 숫자를 입력하세요: "))
    result = a / b
    print(f"{a} ÷ {b} = {result}")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다!")
except ValueError:
    print("숫자를 입력해야 합니다!")

이 코드는 두 가지 오류를 처리합니다.

ZeroDivisionError: 두 번째 숫자로 0을 입력할 때

ValueError: 숫자 외의 값을 입력할 때

 

예외 처리의 확장 : else와 finally 사용하기

파이썬에서는 elsefinally를 활용해 예외 처리 흐름을 더 세밀하게 다룰 수 있어요.

else: 오류가 없을 때 실행할 코드

finally: 오류와 상관없이 항상 실행할 코드

try:
    number = int(input("숫자를 입력하세요: "))
except ValueError:
    print("숫자가 아닙니다.")
else:
    print(f"입력한 숫자는 {number}입니다.")
finally:
    print("프로그램을 종료합니다.")

 

반응형

댓글