如何设置pyvisa异常处理程序?

2024-04-29 15:19:27 发布

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

我尝试使用python3和pyvisa1.8与GPIB设备通信。在

但如何区分不同类型的例外。在

例如:

try:
  visa.ResourceManager().open_resources('COM1')
exception visa.VisaIOError:
  <some code>

当open失败时,它会生成一个一般的异常VisaIOError,但是我怎么知道,端口是忙的还是端口不存在还是其他什么?在

比如:

^{pr2}$

我应该如何正确定位<;1>;<;2>;等等,以捕捉不同类型的异常?在

谢谢


Tags: 端口ltgt类型exceptionvisaopenpython3
1条回答
网友
1楼 · 发布于 2024-04-29 15:19:27

如果你以某种方式给Visa提供了错误的数据,Visa也会引发valueerror和AttributeError。 我认为这会引起IOError,虽然我从未见过这种情况发生。在

是的,但大部分时间都在上升。在

要获取有关异常的更多信息,可以执行以下操作:

_rm = visa.ResourceManager()
try:
    _rm.open_resources('COM1')
exception visa.VisaIOError as e:
    print(e.args)
    print(_rm.last_status)
    print(_rm.visalib.last_status)

您可以将这些状态代码与visa.constants.StatusCode在

^{pr2}$

最后一次检查状态和visalib.last_状态有时会给出相同的状态码-但有时它们不会,所以你应该检查它们。在

注意,我实例化了ResourceManager。你不必这样做,但是你可以用一个实例做一些你不能用这个类做的事情,另外,如果你给它一个简短的名字,它的输入就更少了。在

相关问题 更多 >