Forums Neueste Beiträge
 

NameError: bei EXCEPT

05/05/2008 - 19:34 von Marcia Schmid | Report spam
Hallo,

ich versuche mich gerade an der seriellen Kommunikation mit einem
GSM-Modem. Wenn das Modem ausgeschaltet ist oder anderweitig verwendet
wird gibt es folgende Meldung:
File "D:\Python25\Lib\site-packages\serial\serialwin32.py", line 55, in open
raise SerialException("could not open port: %s" % msg)
SerialException: could not open port: (5, 'CreateFile', 'Zugriff
verweigert')

Dies wollte ich mit einem EXCEPT abfangen.
except SerialException:
print 'FEHLER! Keine Kommunikation an Port %s moeglich!' % port

Das ergibt wiederum einen Programmabbruch mit der Meldung:
except SerialException():
NameError: global name 'SerialException' is not defined

Wie ermittle ich was hinter EXCEPT eingetragen wird? Schließlich möchte
ich nur diesen Fehler abfangen und nicht möglicherweise Folgende.

Gruß Marcia
 

Lesen sie die antworten

#1 Thomas Rachel
05/05/2008 - 21:14 | Warnen spam
Marcia Schmid schrieb:

Dies wollte ich mit einem EXCEPT abfangen.
except SerialException:
print 'FEHLER! Keine Kommunikation an Port %s moeglich!' % port

Das ergibt wiederum einen Programmabbruch mit der Meldung:
except SerialException():
NameError: global name 'SerialException' is not defined



Klar. SerialException ist in dem Modul serial definiert, d. h. wenn Du
vorher

import serial

machst, mußt DU

except serial.SerialException:

schreiben.

Wenn Du mit

from serial import dies, das, jenes

arbeitest, fügst Du dieser Liste die SerialException einfach hinzu...

Verkehrt wàre es evtl. auch nicht, das Exception-Objekt mit auszugeben:

except SerialException, e:
print >>stderr, 'FEHLER! Keine Kommunikation an Port %s moeglich wegen
%r!' % (port,e)

HTH,

Thomas

Ähnliche fragen