gpt4 book ai didi

python - 捕获导入模块中引发的异常

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:21 25 4
gpt4 key购买 nike

我正在编写一个使用 pyserial 模块的 Python 程序。该程序旨在读取 Arduino 模块的输出。我可以使用以下命令打开串行对象:

ser = serial.Serial('/dev/cu.usbmodem641', 9600)

然后我可以通过以下方式读取它:

line = ser.readline()

但是,我希望能够处理在未连接 Arduino 模块的情况下启动程序时引发的异常。抛出的异常是:

File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/serial/serialposix.py", line 292, in open
raise SerialException(msg.errno, "could not open port %s: %s" % (self._port, msg))

如果我尝试使用主程序中的常规 try/except block 来捕获此问题,则不会捕获它。我尝试从 serialposix.py 导入 SerialException,但这不起作用。

我是否需要亲自动手进行线程处理,或者是否有其他方法来处理这个问题?引发异常时,我想调用 time.sleep(5),然后重试,直到连接可用。

最佳答案

您可以导入serial.SerialException并捕获这一点:

from serial import SerialException

try:
line = ser.readline()
except SerialException:
time.sleep(5)

该异常是 IOError 的子类,因此您也可以使用它,但是您可能会捕获由于端口尚不可用以外的原因引发的异常。

关于python - 捕获导入模块中引发的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29576675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com