2013-08-19 3 views
0

애플리케이션에 의해 발생 된 예외 메시지를 표시하기 위해 언젠가 사용자 정의 메시지를 표시해야하는 경우가 있습니다. 그래서 비슷한 것을 구현할 계획이지만 어떻게해야할지 모르겠습니다. 나는 초기화STR 부분을 반복 제거하고 그 자체로 병합 할 수 있는지 궁금커스텀 파이썬 예외 : 다른 이름이지만 같은 태스크

class A(Exception): 
    """Base class for exceptions in this module.""" 
    pass 


class B(A): 
    """Expect a custom message here.""" 
    def __init__(self, err_msg): 
     super(B, self).__init__(err_msg) 
     self.err_msg = err_msg 

    def __str__(self): 
     return self.err_msg 


class C(A): 
    """Expect a custom message here.""" 
    def __init__(self, err_msg): 
     super(C, self).__init__(err_msg) 
     self.err_msg = err_msg 

    def __str__(self): 
     return self.err_msg 


class D(A): 
    """Expect the default behavior here.""" 
    pass 

은?

+0

'__str__'을 전혀 구현할 필요가 없습니다. 'Exception'은 이미 커스텀 메시지를 전달하는 방법을 제공합니다. : >>> raise Exception ("custom message") Traceback (가장 최근 호출 마지막) : 파일 "", 줄 1, Exception : 커스텀 메시지 ' 커스텀 메시지를 제공하기 위해서'A'를 서브 클래스 화하지 않기를 바란다. 서브 클래스를 제거하고 직접'A'를 사용하면된다. – Bakuriu

답변

0
class MyException(Exception): 
    """Expect a custom message here.""" 
    def __init__(self, err_msg): 
     super(MyException, self).__init__(err_msg) 
     self.err_msg = err_msg 

    def __str__(self): 
     return self.err_msg 


def CustomExceptionA(MyException): 
    pass 

def CustomExceptionB(MyException): 
    pass 
관련 문제