我想保持可靠的日志记录系统运行,但是也有必要引发异常。这段代码完成了我要去的工作,但是看起来很笨拙,而且不太像Python。有什么更好的选择?
import logging
if not condition_met:
missing = set_one - set_two
logging.error('Missing keys: {}'.format(missing))
raise ValueError('Missing keys: {}'.format(missing))
答案 0 :(得分:2)
您可以在此时捕获异常并记录错误,因此,如果发生另一个异常,您也可以记录该异常并将其传播到上游。
try:
# some code
if not condition_met:
missing = set_one - set_two
raise ValueError('Missing keys: {}'.format(missing))
except Exception as e: # or ValueError to narrow it down
logging.error(str(e))
raise # propagate the exception again
请注意,不记录异常而不记录回溯将导致未完成的事情,特别是如果异常是在上游捕获并处理的。您很有可能永远不会修复该特定错误。
答案 1 :(得分:0)