statt traceback nur exception-typ und message ausgeben
Verfasst: Dienstag 25. September 2007, 11:22
Hi,
ich möchte statt einem kompletten stacktrace nur exception-typ und message ausgeben, also quasi die letzte zeile des traceback.
habe das mit traceback.format_exception_only probiert, aber da ich die exception ja grade behandele ist sys.last_type nicht existent.
Muss ich mir diese nachricht also für jeden exc.-typ selbst zusammenbasteln (siehe beispiel)
komme ich über die Errno an den namen der exception?
gibt es eine übersicht welche attribute die verschiedenen exceptions haben und wie die besetzt sind. bei IOError ist message zb leer, dafür strerror besetzt....
Ausgabe:
ich möchte statt einem kompletten stacktrace nur exception-typ und message ausgeben, also quasi die letzte zeile des traceback.
habe das mit traceback.format_exception_only probiert, aber da ich die exception ja grade behandele ist sys.last_type nicht existent.
Muss ich mir diese nachricht also für jeden exc.-typ selbst zusammenbasteln (siehe beispiel)
komme ich über die Errno an den namen der exception?
gibt es eine übersicht welche attribute die verschiedenen exceptions haben und wie die besetzt sind. bei IOError ist message zb leer, dafür strerror besetzt....
Code: Alles auswählen
try: reader = csv.reader(open(sys.argv[1], "rb"))
except IOError, e:
# print traceback.format_exception_only( sys.last_type, sys.last_value )
# -> AttributeError: 'module' object has no attribute 'last_type'
print(type(e))
print "e.message: " + str(e.message)
print "e.args: " + str(e.args)
print "e.errno: " + str(e.errno)
print "e.filename: " + str(e.filename)
print "e.strerror: " + str(e.strerror)
#*zusammenbastel*
print "IOError: %s : '%s'" % (e.strerror, e.filename)
raise
sys.exit(ERROR_IOERROR)
except:
raise
sys.exit(ERROR_UNKNOWN)
Code: Alles auswählen
<type 'exceptions.IOError'>
e.message:
e.args: (2, 'No such file or directory')
e.errno: 2
e.filename: t.csv
e.strerror: No such file or directory
IOError: No such file or directory : 't.csv'
Traceback (most recent call last):
File "build_config.py", line 349, in <module>
try: reader = csv.reader(open(sys.argv[1], "rb"))
IOError: [Errno 2] No such file or directory: 't.csv'