如何捕获Python程序出现「未响应」状态对应的异常?
问题解答
首先明确结论:你无法通过Python代码捕获这个「未响应」对应的异常。
这个提示是操作系统层面的告警:你的代码写了无任何阻塞/休眠的无限死循环,会持续占满单核心CPU资源,进程长时间没有空闲来响应操作系统分发的窗口/输入事件,系统就会判定该进程处于未响应状态,这不属于Python解释器抛出的程序异常,不存在对应的异常类型可供try-except捕获。
你可以通过以下方案解决未响应问题:
- 给循环加短时间休眠,主动让出CPU资源,哪怕设置0.01秒的间隔也能避免进程被系统判定为无响应,修改后的代码示例如下:
import pyautogui import time def stop(): pyautogui.FAILSAFE = False while True: pyautogui.press('enter') # 可根据实际需要的按键频率调整休眠时长,数值越大CPU占用越低 time.sleep(0.05)
- 如果确实需要极高频率的按键操作,可以将按键逻辑放到独立子线程中运行,主线程保留响应系统事件的能力即可避免触发未响应检测。
- 额外提示:非必要不建议将
pyautogui.FAILSAFE设置为False,该参数默认开启时,将鼠标移动到屏幕左上角会自动终止pyautogui的执行,是避免程序失控的有效保护机制。
内容的提问来源于stack exchange,提问作者Katkoota
相关产品推荐
相关产品推荐

