python:在哪里记录异常
我正在寻找一些“最佳实践”建议 在我的Python应用程序中,我使用异常来控制程序流。但我不确定应该将异常记录在哪里。我的直觉告诉我应该把它记录在最靠近引发异常的地方。但这会导致一些相当笨拙的代码:python:在哪里记录异常,python,Python,我正在寻找一些“最佳实践”建议 在我的Python应用程序中,我使用异常来控制程序流。但我不确定应该将异常记录在哪里。我的直觉告诉我应该把它记录在最靠近引发异常的地方。但这会导致一些相当笨拙的代码: def a_deep_level_函数(): 打印(“我正在做一些事情,但它出错了。所以提高。”) #但我也想用同样的信息在这里登录。 #所以我把我的msg放在一个单独的变量中重新使用它。 msg=“这是日志记录和异常消息” _LOGGER.error(msg) 引发异常(msg) 任何想法都很感
def a_deep_level_函数():
打印(“我正在做一些事情,但它出错了。所以提高。”)
#但我也想用同样的信息在这里登录。
#所以我把我的msg放在一个单独的变量中重新使用它。
msg=“这是日志记录和异常消息”
_LOGGER.error(msg)
引发异常(msg)
任何想法都很感激 在python中,最佳实践是使用日志模块生成日志文件。对于异常处理,始终使用try-except块 尝试以下方法:
import logging
def a_deeper_level_function():
try:
print("I am doing stuff, but it goes wrong. So raising.")
# but I also want to log here with the same message.
# so I put my msg in a separate variable to re-use it.
msg = "this is the logging and exception message"
_LOGGER.error(msg)
raise Exception(msg)
except Exception as e:
logging.info(e)
如果您手动引发异常并知道它将出现在哪里,
try
finalize
可能适合您。这也使得在异常之间导航变得更容易
def a_deeper_level_function():
try:
print("I am doing stuff, but it goes wrong. So raising.")
msg = "this is the logging and exception message"
raise Exception(msg)
finally:
_LOGGER.error(msg)
或日志记录。异常(e)
。看见