我得到"TypeError:异常必须从BaseException派生",即使我确实定义了它

Sia*_*ash 8 python exception

根据python文档,Exception派生自BaseExceptions,我应该将它用于用户定义的异常.所以我有:

class VisaIOError(Exception):

    def __init__(self, error_code):
        abbreviation, description = _completion_and_error_messages[error_code]
        Error.__init__(self, abbreviation + ": " + description)
        self.error_code = error_code
Run Code Online (Sandbox Code Playgroud)

 raise(visa_exceptions.VisaIOError, status)
Run Code Online (Sandbox Code Playgroud)

但我得到(trackback片段):

   File "C:\Python32\Lib\site-packages\pyvisa\vpp43.py", line 400, in check_status

    raise(visa_exceptions.VisaIOError, status)
    TypeError: exceptions must derive from BaseException
Run Code Online (Sandbox Code Playgroud)

注意:我正在将代码从python 27转换为32

Sia*_*ash 6

我要做 :

raise visa_exceptions.VisaIOError(status)
Run Code Online (Sandbox Code Playgroud)

  • 是.你试图提出一个元组:`(visa_exceptions.VisaIOError,status)`.这就是'TypeError`的用武之地. (4认同)