我的项目的代码是完全一样以下模块:我可以改变“提高”或“例外”的行为吗?
try:
execute_some_code()
except Exception:
print(datetime.datetime.now())
raise
仅仅是因为,如果我得到一个错误信息,我想知道什么时候发生。我觉得反复重复这些代码非常愚蠢,我想把它分开。
我不想装饰execute_some_code
的东西,这样做的错误捕获(因为有时它只是一个代码块,而不是一个函数调用,有时我不需要完全相同的功能来装饰,就像那样)。我也不希望将stdout转移到记录所有内容的其他流,因为这会影响其他所有发送到stdout的内容。
理想情况下,我希望覆盖raise
语句(在每次执行时也打印datetime.datetime.now()
)或Exception
类的行为,以预先将所有消息与时间挂起。我可以很容易地从Exception
中进行分类,但是之后我必须确保我的函数能够引发这个子类的一个实例,并且我会有与当前一样多的代码重复。
这些选项可能有哪些?
正在使用调试器一个选项吗? – xuhdev
我正在写'sys.excepthook',但@IljaEverilä打倒我找到了这个谜。 – Boldewyn