如何在python中捕获外部异常?

2024-06-25 23:14:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个简单的python脚本来移动鼠标,并使用pyautogui来实现该脚本必须同时在Windows和Linux上运行。问题是when i use linux Xlib raise Xlib.error.DisplayConnectionError。为了解决这个问题,我使用try/catch子句导入pyautogui,但我不知道如何捕获Xlib.error.DisplayConnectionError。 作为一种解决方法,我使用了except Exception:,但它不是很好:

import os
try:
    import pyautogui as pag
except Exception:
    os.system("xhost +SI:localuser:root")
    import pyautogui as pag

我一直看到:

Catching exceptions raised in imported modules

但我无法在Windows上导入Xlib

一种解决办法似乎是:

import os
if 'DISPLAY' in os.environ:
    import Xlib
    try:
        import  pyautogui as pag
    except Xlib.error.DisplayConnectionError:
        os.system("xhost +SI:localuser:root")
        import  pyautogui as pag
else:
    import pyautogui as pag

但它令人困惑、冗长且难以阅读


Tags: import脚本oswindowsasexceptionerrorsystem
1条回答
网友
1楼 · 发布于 2024-06-25 23:14:52

您可以捕获常规异常,然后只需检查其特定类型,而无需导入外部模块:

try:
    import 𝙢𝙤𝙙𝙪𝙡𝙚
except Exception as e:
    if e.__type__ == '𝙀𝙭𝙘𝙚𝙥𝙩𝙞𝙤𝙣𝙉𝙖𝙢𝙚':
        #do things...
    else:
        #do other things...

Suggestion@tjollans

相关问题 更多 >