Beispiele:
Code: Alles auswählen
In [54]: try: raise ValueError(u"brötchen")
....: except ValueError, e: pass
....:
In [55]: str(e) # Das geht natürlich nicht...
---------------------------------------------------------------------------
<type 'exceptions.UnicodeEncodeError'> Traceback (most recent call last)
H:\<ipython console> in <module>()
<type 'exceptions.UnicodeEncodeError'>: "'ascii' codec can't encode character u'\xf6' in position 2: ordinal not in range
(128)"
In [56]: e.message # Dann mach ich es lieber so und arbeite mit unicode weiter
Out[56]: u'br\xf6tchen'
In [57]: try: str(u"brötchen")
....: except UnicodeEncodeError, e: pass
....:
In [58]: e.message # Toll, mein message Attribut ist leer!?
Out[58]: ''
In [59]: str(e) # Dann muss ich wohl doch den Weg nehmen
Out[59]: "'ascii' codec can't encode character u'\\xf6' in position 2: ordinal not in range(128)"
Wie ermittelt ihr die Meldung von gefangenen Exceptions?
Was mich ein wenig an dem Zugriff über message gestört hat, war die Tatsache das es nicht von älteren Versionen wie Pyhton2.3 unterstützt wird. Aber damit hatte ich mich eigentlich abgefunden.