Cai*_*lio 15 python except bare pyautogui
我尝试使用PyAutoGui创建一个函数来检查屏幕上是否显示图像,并提出了这个:
def check_image_on_screen(image):
try:
pyautogui.locateCenterOnScreen(image)
return True
except:
return False
Run Code Online (Sandbox Code Playgroud)
它工作正常,但PyCharm告诉我,我不应该except裸露.把它留下来有什么问题?有没有更合适的方法来创建相同的功能?
Ada*_*ith 21
Bare except会捕获你几乎肯定不想捕获的异常,包括KeyboardInterrupt(用户按Ctrl + C)和Python引发的错误,如SystemExit
如果您没有特定的异常,那么至少except Exception,它是所有"常规"异常的基本类型.
话虽如此:您使用except块来从已知的故障状态中恢复.未知的故障状态通常是不可恢复的,并且在这些状态中致命地退出是正确的行为,这就是Python解释器自然地对未捕获的异常所做的事情.
抓住你知道如何处理的所有东西,让其余的东西在调用堆栈中传播,看看是否有别的东西可以处理它.在这种情况下,您期望的错误(根据文档)是pyautogui.ImageNotFoundException