[python] 함수의 사용자 정의 예외 처리

파이썬에서는 try-except 블록을 사용하여 오류를 처리할 수 있습니다. 하지만 때로는 프로그램에서 사용자 자체적으로 정의한 예외를 발생시켜야 하는 경우가 있습니다. 이때, 사용자 정의 예외를 처리하는 방법을 알아보겠습니다.

사용자 정의 예외란?

파이썬에서는 내장 예외뿐만 아니라 사용자가 직접 예외를 정의하여 발생시킬 수 있습니다. 이때, Exception 클래스를 상속받아 새로운 예외 클래스를 정의할 수 있습니다.

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

    def __str__(self):
        return self.message

위 예제에서 CustomErrorException 클래스를 상속받아 새로운 예외 클래스를 정의한 것입니다. 예외 발생 시 특정한 메시지를 포함하도록 설정되어 있습니다.

사용자 정의 예외 발생시키기

사용자 정의 예외를 발생시키는 방법은 내장 예외를 발생시키는 방법과 동일합니다. raise 키워드를 사용하여 새로 정의한 예외를 발생시킬 수 있습니다.

def validate_age(age):
    if age < 0:
        raise CustomError("나이는 음수일 수 없습니다.")
    elif age < 18:
        raise CustomError("만 18세 미만은 이용할 수 없습니다.")
    else:
        return "이용 가능한 나이입니다."

위 코드에서 validate_age 함수는 나이에 따라 예외를 발생시킵니다.

사용자 정의 예외 처리하기

사용자 정의 예외를 처리하는 방법은 내장 예외를 처리하는 방법과 동일합니다. try-except 블록을 사용하여 예외를 처리할 수 있습니다.

try:
    result = validate_age(15)
    print(result)
except CustomError as e:
    print(f"예외가 발생했습니다: {e}")

위 코드에서는 validate_age 함수에서 발생한 CustomError를 처리하고, 예외 메시지를 출력합니다.

마무리

사용자 정의 예외를 활용하면 프로그램의 가독성과 유지보수성을 높일 수 있습니다. 핵심은 적절한 예외 클래스를 정의하고 사용하는 것입니다.

이상으로 함수의 사용자 정의 예외 처리에 대해 알아보았습니다. 다음에 또 만나요!

참고 자료