|
|
1
1
一个行之有效的方案是在应用程序代码的顶层有一个通用的except子句,以确保任何未经处理的错误都会被记录(当然会被重新引发),并且它还为您提供了一个在崩溃之前尝试进行一些清理的机会 一旦你做到了这一点,如果你想在你的日志消息中捕获更多的上下文信息,那么在你的代码中添加特定的“日志并重新发布”异常处理程序是有意义的,就像你的代码片段示例一样。这意味着异常可能会被记录两次,但这很难解决问题。
如果你
真正地
想要成为pythonic(或者如果您重视错误日志),请使用
stdlib's
日志模块的一些(其他)好处是能够将日志配置(应该由应用程序本身处理,并且可以是非常细粒度的)与日志调用(通常发生在库代码级别)解耦,与编写良好的lib(已经使用)兼容
这确实是一种常见的模式,但请注意不要做得过火——您只想对实际预期的异常和您需要的异常执行此操作
真正地
这种模式的另一个可能问题是(至少在Python2中)您将丢失原始异常和回溯,因此最好在引发您自己的异常之前适当地记录它们。IIRC-Python3有一些机制可以以更简洁的方式处理这种情况,让您保留一些原始的异常信息。 |