【发布时间】:2019-03-11 08:29:35
【问题描述】:
我想保持一个可靠的日志系统运行,但也有必要引发异常。这段代码完成了我的目标,但它看起来很笨重而且不是很 Pythonic。有什么更好的选择?
import logging
if not condition_met:
missing = set_one - set_two
logging.error('Missing keys: {}'.format(missing))
raise ValueError('Missing keys: {}'.format(missing))
【问题讨论】:
-
保存字符串
s = 'Missing keys: {}'.format(missing),然后使用两次 -
@Chris_Rands 绝对是我正在考虑的事情之一。还有什么更优雅的吗?
-
视情况而定,但记录然后引发异常通常被认为是反模式。它是多余的并且使日志杂乱无章。除非您期望某些东西能够捕获该异常并抑制消息,否则不要记录。
-
Pythonic 并不是真正的外观,因为它是代码的格式。你所拥有的将起作用。如果您想使用较新的字符串,您可以使用 f-string,例如,
f'Missing Keys: {missing}',这是 Python 3.6 中的新功能。 -
@Jean-FrançoisFabre 在这种特殊情况下,我正在做一些复杂的数据分析并构建这个工具以供我的团队使用,即其他几个 Python/软件经验少得多的人需要知道如何使用这个。日志是我希望拉平学习曲线的方法之一。
标签: python python-3.x error-handling