5. 예외 처리(Exception Handling)
예외 처리 기본 (try, except, finally)
예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하는 방법입니다. try
블록 안에 오류가 발생할 가능성이 있는 코드를 작성하고, except
블록에서 그 오류를 처리합니다. finally
블록은 예외 발생 여부와 상관없이 항상 실행됩니다.
try: # 예외가 발생할 가능성이 있는 코드 result = 10 / 0 except ZeroDivisionError: # ZeroDivisionError 예외 처리 print("0으로 나눌 수 없습니다.") finally: # 예외 발생 여부와 상관없이 항상 실행 print("예외 처리가 완료되었습니다.")
위 예제에서는 10 / 0
연산에서 ZeroDivisionError
가 발생하지만, except
블록에서 이를 처리하여 프로그램이 비정상 종료되지 않게 합니다. finally
블록은 예외 발생 여부와 관계없이 항상 실행됩니다.
사용자 정의 예외
Python에서는 내장된 예외 외에도 사용자 정의 예외를 만들어 사용할 수 있습니다. 사용자 정의 예외는 기본 예외 클래스인 Exception
을 상속받아 정의합니다.
# 사용자 정의 예외 클래스 정의 class NegativeNumberError(Exception): def __init__(self, value): self.value = value self.message = f"{value}는 음수입니다. 양수를 입력해주세요." super().__init__(self.message) def check_positive(number): if number < 0: raise NegativeNumberError(number) return number try: number = -5 result = check_positive(number) except NegativeNumberError as e: print(e)
위 예제에서는 NegativeNumberError
라는 사용자 정의 예외를 만들고, check_positive
함수에서 음수가 입력될 경우 해당 예외를 발생시키도록 했습니다. try
블록에서 check_positive
함수를 호출하고, except
블록에서 사용자 정의 예외를 처리합니다.
이와 같이 예외 처리를 통해 프로그램의 안정성을 높이고, 사용자 정의 예외를 사용하여 더 구체적이고 의미 있는 오류 메시지를 제공할 수 있습니다.