Python Exception Handling

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 블록에서 사용자 정의 예외를 처리합니다.

이와 같이 예외 처리를 통해 프로그램의 안정성을 높이고, 사용자 정의 예외를 사용하여 더 구체적이고 의미 있는 오류 메시지를 제공할 수 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *