最佳答案
创建异常的最佳实践是什么?我刚看到这个,我不知道我是该害怕,还是喜欢。我在书中多次读到,异常永远不应该包含一个字符串,因为字符串本身可以抛出异常。这是真的吗?
基本上,从我对脚本的理解来看,这样做是为了让所有内部 Python 库都有一个共同的错误消息格式(这是非常需要的) ,这样我就可以理解为什么放置错误消息字符串是一个好主意。(几乎每个方法都会抛出异常,因为完全不需要无效的通过)。
有关守则如下:
"""
Base Exception, Error
"""
class Error(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return "[ERROR] %s\n" % str(self.message)
def log(self):
ret = "%s" % str(self.message)
if(hasattr(self, "reason")):
return "".join([ret, "\n==> %s" % str(self.reason)])
return ret
class PCSException(Error):
def __init__(self, message, reason = None):
self.message = message
self.reason = reason
def __str__(self):
ret = "[PCS_ERROR] %s\n" % str(self.message)
if(self.reason != None):
ret += "[REASON] %s\n" % str(self.reason)
return ret
这只是冰山一角,但是谁能告诉我为什么这是个糟糕的主意?或者是否有更好的异常编码流程/样式。