2013-07-23 15 views
6

zgodnie z dokumentami Pythona, wyjątek pochodzi z BaseExceptions i powinienem go używać dla wyjątków zdefiniowanych przez użytkownika. tak mam:Otrzymuję "TypeError: wyjątki muszą pochodzić z BaseException", mimo że zdefiniowałem go jako

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 

And

raise(visa_exceptions.VisaIOError, status) 

ale mam (trackback fragment):

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 

Uwaga: Ja konwersji kodu z pytona 27 do 32

Odpowiedz

4

I do zrobienia:

raise visa_exceptions.VisaIOError(status) 
+2

Tak. Próbowałeś podnieść krotkę: '(visa_exceptions.VisaIOError, status)'. Właśnie tam pojawił się "TypeError". – kindall

Powiązane problemy