繁体   English   中英

循环时无法键盘中断

[英]Unable to KeyboardInterrupt while loop

我有一个在无限循环上运行的 python 脚本。 在循环中多进程和异步函数发生,所以通常我会捕获 KeyboardInterrupt 以正确终止所有进程。

在其中一个循环上以某种方式使用类似的代码我无法捕捉到 KeyboardInterrupt 循环只是继续。

逻辑是这样的:

try:
    while True:
         do stuff
except (KeyboardInterrupt, SystemExit):
    exit cleanly

通常我会怀疑一个全面的尝试......除了子函数中的某个地方,但我浏览了整个代码库,虽然有很多错误捕捉到一切都是特定的。

有没有办法跟踪错误并以某种方式找出 KeyboardInterrupt 被捕获的位置?

谢谢

****** 在一些调试后进行编辑...所以我部分地禁用了代码,直到我解决了这个错误:在代码中的某个地方,我正在调用一个缺少 self 并且没有标记为 @staticmethod 的方法。

改变它解决了我的问题。

这对我有用。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM