Python - 什么时候选择logging.error()over raise Exception()?

时间:2017-07-27 20:32:22

标签: python

我在整个代码中使用日志记录,以便更轻松地控制日志记录级别。让我困惑的一件事是

  

您何时更喜欢logging.error()raise Exception()

对我来说,logging.error()并没有多大意义,因为程序应该在遇到错误时停止,例如raise Exception()

在什么情况下,我们是否使用logging.error()发出错误消息并让程序继续运行?

2 个答案:

答案 0 :(得分:3)

记录只是留下一些事件供以后检查,但绝对不会影响程序的执行;引发异常允许您向更高级别的呼叫者发出错误信号并让他们处理它。通常你会同时使用它们,它不是 - 或者。

答案 1 :(得分:1)

这完全取决于您的流程,但它基本上归结为您是否要处理遇到的错误(以及如何),或者您希望将其传播给代码的用户 - 或两者兼而有之。

logging.error()通常用于记录错误发生的时间 - 这并不意味着您的代码应该暂停并引发异常,因为存在可恢复的错误。例如,您的代码可能一直在尝试加载远程资源 - 您可以记录错误并在以后再次尝试而不会引发异常。

顺便说一句。您可以使用logging使用logging.exception()来记录异常(完整,带有堆栈跟踪)。