【问题标题】:Unable to KeyboardInterrupt while loop循环时无法键盘中断
【发布时间】: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


    【解决方案1】:

    这对我有用。

    try:
        while True:
            print(1)
    except KeyboardInterrupt:
        raise
    

    编辑: 实际阅读您的问题,如果没有看到其余或更多代码,我将无法告诉您为什么它不会引发错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 2022-07-31
      • 1970-01-01
      • 2021-06-22
      • 2016-05-07
      • 2021-03-01
      • 1970-01-01
      相关资源
      最近更新 更多