본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter06. 사용자 정의 예외 클래스

by about_IT 2025. 5. 18.
728x90

파이썬에서는 내장 예외 클래스만으로도 대부분의 오류 처리가 가능하지만, 보다 구체적인 상황을 처리하거나 명확한 예외 메시지를 제공하고 싶을 때는 사용자 정의 예외 클래스를 만드는 것이 좋습니다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있습니다.


● 사용자 정의 예외란?

사용자가 직접 예외 클래스를 정의하여 특정 조건에서만 발생하도록 만드는 것입니다. 보통 Exception 또는 ValueError와 같은 기존 예외 클래스를 상속받아 구현합니다.

class NegativeNumberError(Exception):
    pass

이제 raise NegativeNumberError("음수는 허용되지 않습니다.")처럼 직접 예외를 발생시킬 수 있습니다.


● 예외 클래스에 메시지 추가

예외 클래스에 메시지를 전달하려면 __init__ 메서드를 오버라이드하고, __str__ 메서드로 표현 방식을 지정할 수 있습니다.

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

    def __str__(self):
        return f"CustomError: {self.message}"

이렇게 하면 예외 발생 시 보다 직관적인 메시지를 출력할 수 있어 디버깅에 유리합니다.


● 실사용 예시

def divide(a, b):
    if b == 0:
        raise ZeroDivisionError("0으로 나눌 수 없습니다.")
    if a < 0 or b < 0:
        raise NegativeNumberError("음수 입력 불가")
    return a / b

try:
    result = divide(-4, 2)
except NegativeNumberError as e:
    print(e)

이 예시는 특정 입력 조건에 따라 다른 예외를 발생시키는 구조입니다.


● 마무리

사용자 정의 예외는 프로그램의 동작을 명확히 설명할 수 있는 중요한 수단입니다. 특히 복잡한 로직이나 다양한 오류 상황을 다루는 프로그램에서는 사용자 정의 예외를 통해 문제 발생 원인을 빠르게 파악하고 처리할 수 있습니다.

728x90