Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 예외(Exception)에 변수를 전달하는 방법

Python에서는 커스텀 예외(Custom Exception)를 정의하고, 해당 예외가 발생할 때 변수를 함께 전달할 수 있습니다. 이를 통해 예외 발생 원인이나 추가 정보를 예외 객체 자체에 담아 전달할 수 있어 디버깅과 오류 처리가 훨씬 편리해집니다.

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

먼저 기본 클래스인 Exception을 상속받는 사용자 정의 예외 ExampleException을 만들고, __init__ 메서드를 정의하여 변수를 저장하도록 구성합니다.

예제 코드

class ExampleException(Exception):
    def __init__(self, foo):
        self.foo = foo

try:
    raise ExampleException("Bar!")
except ExampleException as e:
    print(e.foo)

실행 결과

"C:/Users/TutorialsPoint1/~bar.py"
Bar!

코드 설명

위 코드의 동작 과정은 다음과 같습니다.

1. 커스텀 예외 정의: ExampleExceptionException 클래스를 상속받으며, __init__ 메서드를 통해 매개변수 foo를 받아 인스턴스 속성으로 저장합니다.

2. 예외 발생: try 블록 안에서 raise 문을 사용해 ExampleException("Bar!")를 호출하면서 문자열 "Bar!"를 변수로 전달합니다.

3. 예외 처리 및 값 출력: except 블록에서 발생한 예외 객체를 e로 받고, e.foo를 통해 전달된 변수 값에 접근하여 출력합니다.

참고 사항

위 예제의 print e.foo는 Python 2 문법입니다. Python 3 이상에서는 반드시 괄호를 사용하는 print(e.foo) 형태로 작성해야 합니다. 또한 여러 개의 변수를 전달하고 싶다면 __init__ 메서드에 매개변수를 추가하거나, 가변 인자(*args, **kwargs)를 활용하면 됩니다.