如何从_init__方法返回多个异常?

2024-04-18 19:21:24 发布

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

我有__init__()个类3与外部设备的连接。我想尝试打开它们,并返回字符串,或包含设备未正确连接信息的字符串列表。主要问题是:这个类是从另一个程序调用的,__init__方法必须返回None,而不是字符串

代码:

def __init__(self):
    rm = pyvisa.ResourceManager()
    rm.list_resources()
    self.thermometer = rm.open_resource('USB0::0x164E::0x0DAD::TW00020217::INSTR')

    com = find_com.find_device('USB Serial Port')
    self.voltmeter = serial.Serial(com, baudrate=9600, timeout=1)

    com = find_com.find_device('CH340')
    self.arduino = serial.Serial(com, baudrate=9600, timeout=1)

在@Carcigenicate评论的帮助下,我尝试:

class Aparature:
    def __init__(self):
        try:
            rm = pyvisa.ResourceManager()
            rm.list_resources()
            self.thermometer = rm.open_resource('USB0::0x164E::0x0DAD::TW00020217::INSTR')
        except Exception:
            raise Exception('thermometer is not connected properly\n')

        try:
            com = find_com.find_device('USB Serial Port')
            self.voltmeter = serial.Serial(com, baudrate=9600, timeout=1)
        except Exception:
            raise Exception('voltmeter is not connected properly\n')

        try:
            com = find_com.find_device('CH340')
            self.arduino = serial.Serial(com, baudrate=9600, timeout=1)
        except Exception:
            raise Exception('arduino is not connected properly')

try:
    self.Meters = Aparature()
except Exception as e:
    print(e)

它只打印第一个异常,但我想打印所有发生的异常