[파이썬] 커스텀 예외 클래스와 정보 전달

Python은 강력한 예외 처리 메커니즘을 제공하여 프로그래머가 코드를 안정적으로 실행할 수 있도록 도와줍니다. 예외 처리를 통해 발생한 오류를 감지하고, 적절한 조치를 취할 수 있게 됩니다. 그러나 때로는 내장된 예외 클래스만으로는 원하는 정보를 전달하기 어려운 경우가 있습니다. 이런 상황에서는 커스텀 예외 클래스를 정의하고, 필요한 정보를 전달할 수 있습니다.

커스텀 예외 클래스 정의하기

커스텀 예외 클래스를 정의하려면 Exception 클래스를 상속받아야 합니다. 이 클래스를 상속받으면 Python의 예외 처리 기능을 그대로 이용할 수 있습니다. 아래 예시 코드를 통해 어떻게 커스텀 예외 클래스를 정의하는지 알아보겠습니다.

class MyCustomException(Exception):
    def __init__(self, message):
        self.message = message
        super().__init__(self.message)

위의 예시 코드에서는 MyCustomException이라는 커스텀 예외 클래스를 정의하였습니다. 생성자 메서드 __init__에서는 에러 메시지를 인자로 받아서 예외 객체를 초기화하고, super().__init__(self.message)를 호출하여 부모 클래스의 초기화 메서드를 실행합니다.

커스텀 예외 클래스 사용하기

커스텀 예외 클래스를 사용하려면, 예외가 발생하는 상황에 해당 예외를 raise하면 됩니다. 필요한 경우 에러 메시지를 전달할 수도 있습니다. 아래 예시 코드를 통해 커스텀 예외 클래스의 사용법을 이해해봅시다.

def divide_numbers(a, b):
    if b == 0:
        raise MyCustomException("Division by zero is not allowed")
    else:
        return a / b

try:
    result = divide_numbers(10, 0)
    print(result)
except MyCustomException as ex:
    print(f"An error occurred: {ex}")

위의 예시 코드에서는 divide_numbers 함수에서 b가 0인 경우 MyCustomException을 raise하도록 구현되어 있습니다. 이 함수를 호출하면 예외가 발생하게 되는데, 이때 커스텀 예외 클래스를 사용하여 에러 메시지를 전달합니다. try-except 구문을 사용하여 예외를 처리하고, ex 객체에서 에러 메시지를 가져와 출력합니다.

커스텀 예외 클래스를 사용하면, 예외 발생 시 필요한 정보를 상세하게 전달할 수 있습니다. 이를 통해 프로그램의 디버깅과 유지보수 과정에서 유용하게 활용할 수 있습니다.

이상으로 Python에서 커스텀 예외 클래스를 정의하고 사용하는 방법에 대해 알아보았습니다. 예외 처리는 안정적인 프로그램 실행을 보장하기 위한 중요한 요소이므로, 프로그래머는 예외 처리를 적절하게 사용하고 커스텀 예외 클래스를 활용하는 것이 좋습니다.