【发布时间】:2016-04-25 09:17:40
【问题描述】:
我的项目代码充满了如下块:
try:
execute_some_code()
except Exception:
print(datetime.datetime.now())
raise
只是因为,如果我收到一条错误消息,我想知道它是什么时候发生的。我发现一遍又一遍地重复这段代码很愚蠢,我想把它排除在外。
我不想用可以捕获错误的东西来装饰execute_some_code(因为有时它只是一段代码而不是函数调用,有时我不需要完全相同的函数来装饰那)。我也不想将标准输出转移到记录所有内容的其他流,因为这也会影响发送到标准输出的所有其他内容。
理想情况下,我想覆盖raise 语句(在每次执行时也打印datetime.datetime.now())或Exception 类的行为,在其所有消息前面加上时间。我可以轻松地从 Exception 继承子类,但是我必须确保我的函数引发了这个子类的实例,并且我的代码重复量与目前一样多。
这两个选项都可以吗?
【问题讨论】:
-
您是否可以选择使用调试器?
-
我本来打算写关于
sys.excepthook的文章,但 @IljaEverilä 找到了骗子。
标签: python