[파이썬] 예외 객체와 에러 메시지

파이썬 프로그래밍을 하다보면 에러가 발생할 수 있습니다. 이러한 상황에서 파이썬은 예외 처리를 통해 프로그램의 비정상적인 종료를 방지합니다. 예외 처리를 위해 파이썬은 예외 객체와 에러 메시지를 제공합니다.

예외 객체

예외 객체는 예외가 발생했을 때 생성되는 객체입니다. 파이썬에서는 다양한 내장 예외 클래스를 제공하며, 예외가 발생할 때 해당 예외 클래스의 객체가 생성됩니다. 예외 객체는 예외의 종류와 발생 위치 등의 정보를 담고 있습니다.

예를 들어, ZeroDivisionError 예외가 발생했을 경우에는 ZeroDivisionError 클래스의 객체가 생성됩니다. 이 객체는 해당 예외의 정보를 담고 있으며, 필요한 경우 예외 정보를 사용해 추가적인 처리를 할 수 있습니다.

에러 메시지

에러 메시지는 예외 발생 시 출력되는 메시지로, 예외 객체의 문자열 표현입니다. 에러 메시지를 통해 어떤 예외가 발생했는지 알 수 있습니다. 또한, 에러 메시지는 프로그램의 디버깅에 도움을 줄 수 있습니다.

파이썬에서는 try-except 문을 사용하여 예외를 처리할 수 있습니다. except 블록에서는 예외 객체와 에러 메시지를 활용하여 원하는 방식으로 예외 처리를 할 수 있습니다. 예외 객체를 사용하면 예외의 종류에 따른 처리를 세밀하게 지정할 수 있고, 에러 메시지를 사용하면 프로그램의 실행 중 발생한 예외를 쉽게 확인할 수 있습니다.

try:
    # 예외 발생 가능한 코드
    result = 10 / 0
except ZeroDivisionError as e:
    # 예외 객체를 이용한 처리
    print("ZeroDivisionError:", e)

위의 코드에서 ZeroDivisionError 예외가 발생하면, 해당 예외 객체 e를 통해 추가적인 처리를 할 수 있습니다. e에는 예외 객체의 정보가 담겨 있으며, e의 속성을 참조하여 해당 예외의 세부 정보를 확인할 수 있습니다. 예를 들어, e.args를 이용해 예외 메시지를 확인할 수 있습니다.

에러 메시지는 예외 객체의 __str__ 메서드로 정의되며, 필요한 경우 직접 정의하여 커스텀한 에러 메시지를 출력할 수도 있습니다.

class CustomError(Exception):
    def __str__(self):
        return "This is a custom error message."

위와 같이 CustomError 클래스를 정의하고 __str__ 메서드를 오버라이딩하여 커스텀한 에러 메시지를 정의할 수 있습니다.

예외 객체와 에러 메시지를 올바르게 활용하면 프로그램의 예외 처리를 더욱 강력하게 만들 수 있습니다.