error-instead-of-exception (TRY400)
源自 tryceratops linter。
有时提供修复。
作用
检查在记录异常时使用 logging.error
而不是 logging.exception
的情况。
为什么这不好?
logging.exception
会记录异常和回溯信息,而 logging.error
只记录异常。在记录异常时,前者更合适,因为回溯信息通常对调试很有用。
示例
import logging
def func():
try:
raise NotImplementedError
except NotImplementedError:
logging.error("Exception occurred")
建议改为
import logging
def func():
try:
raise NotImplementedError
except NotImplementedError:
logging.exception("Exception occurred")
修复安全性
当针对 logging.error
调用运行时,此规则的修复程序被标记为安全,但当针对其他类似 logger 的调用(例如 logger.error
)标记时,则被标记为不安全,因为在检测 logging
模块之外的类似 logger 的调用时,该规则容易出现误报。