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
這使您可以選擇真正重新引發錯誤,如此處所示,或者像示例中那樣鏈接它。我強烈建議不要鏈接,除非你有很好的理由這樣做。
添加回答
舉報