我在整个代码中使用日志记录,以便更轻松地控制日志记录级别。让我困惑的一件事是
您何时更喜欢
logging.error()
到raise Exception()
?
对我来说,logging.error()
并没有多大意义,因为程序应该在遇到错误时停止,例如raise Exception()
。
在什么情况下,我们是否使用logging.error()
发出错误消息并让程序继续运行?
答案 0 :(得分:3)
记录只是留下一些事件供以后检查,但绝对不会影响程序的执行;引发异常允许您向更高级别的呼叫者发出错误信号并让他们处理它。通常你会同时使用它们,它不是 - 或者。
答案 1 :(得分:1)
这完全取决于您的流程,但它基本上归结为您是否要处理遇到的错误(以及如何),或者您希望将其传播给代码的用户 - 或两者兼而有之。
logging.error()
通常用于记录错误发生的时间 - 这并不意味着您的代码应该暂停并引发异常,因为存在可恢复的错误。例如,您的代码可能一直在尝试加载远程资源 - 您可以记录错误并在以后再次尝试而不会引发异常。
顺便说一句。您可以使用logging
使用logging.exception()
来记录异常(完整,带有堆栈跟踪)。