Я просто хочу убедиться, что я делаю это надлежащим "питоническим" способом - я хочу убедиться, что я определил - и использую - этот класс исключений правильно.Особенно логика eval (repr ()) - в основном для чистоты, я понимаю, почему вы заканчиваете кавычками вокруг строки, возвращаемой repr (), но я не люблю их регистрировать.
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