나는 적절한 "pythonic"방식으로이 작업을하고 있는지 확인하고 싶다 - 나는이 예외 클래스를 올바르게 정의하고 사용하고있다. 특히 eval (repr()) 논리는 청결을 위해 주로 사용 되었기 때문에 왜 repr() 문자열이 반환되는지 따옴표가 붙지 만 이해하지만 로그하지는 않습니다. 나는 예외가 발생하면이것은 Python 예외를 정의하고 사용하는 적절한 방법입니까?
class IPCClientError(Exception):
""" General IPC Client Exception class """
def __init__(self, value = "Unspecified error"):
self.val = value + ", see IPC client log for details."
def __str__(self):
return eval(repr(self.val))
, 나는 같은 것을 사용
raise IPCClientError("Socket error")
을 그리고 호출하는 방법은 다음과 같이해야합니다 :
except IPCClientError, exc:
self.log.error(str(exc))
return ERROR
그래, 예외를 다시 제기해야한다는 것을 제외하고는 올바르게하고 있습니다. –
당신은 맞습니다. 다음에 리팩토링을 할 수있는 기회가 생겼습니다. – Dave
왜'return self.val' 대신'return eval (repr (self.val))'을 사용하고 있습니까? – jamessan