【发布时间】:2021-01-18 07:34:36
【问题描述】:
我有一个在无限循环上运行的 python 脚本。在循环中,多进程和异步函数会发生,所以通常我会捕获 KeyboardInterrupt 以正确终止所有进程。
以某种方式在其中一个循环上使用类似的代码,我无法捕捉到 KeyboardInterrupt 循环继续进行。
逻辑是这样的:
try:
while True:
do stuff
except (KeyboardInterrupt, SystemExit):
exit cleanly
通常我会怀疑一揽子尝试...除了子函数中的某个地方,但我检查了整个代码库,虽然有很多错误,但捕捉到的都是特定的。
有没有办法跟踪错误并以某种方式找出 KeyboardInterrupt 被捕获的位置?
谢谢
****** 调试后编辑... 因此,我逐步禁用了代码,直到解决了该错误: 在代码中的某处,我调用了一个缺少 self 且未标记为 @staticmethod 的方法。
改变它解决了我的问题。
【问题讨论】:
标签: python python-3.x debugging error-handling while-loop