1 回答
TA贡献1842条经验 获得超22个赞
试图获取这样的来电者信息是不可靠的。此外,在某些情况下,您并不感兴趣的直接来电者。
异常记录本身的想法似乎很明智。为了妥协,我会将日志记录功能移到您可以显式触发的单独方法中。毕竟,例外主要是常规对象:
class LoggingException(Exception):
def __init__(self, message, package_id):
# Set message info
super.__init__(message)
self.package_id = package_id
def log(self, manager=None):
if manager.log_handler is None:
print(super().__str__())
else:
manager.l(self.package_id, LogLevelEnum.ERROR, super()..__str__())
现在,您可以随时触发日志记录操作,而无需重新构建消息:
try:
...
except LoggingException as e:
e.log(some_manager)
raise
这使您可以选择真正重新引发错误,如此处所示,或者像示例中那样链接它。我强烈建议不要链接,除非你有很好的理由这样做。
添加回答
举报
