簡體   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