Sto cercando di generare un'eccezione in python 2.7.x che include un unicode nel messaggio. Non riesco a farlo funzionare.possibile generare un'eccezione che includa caratteri non inglesi in python 2?
Non è supportato o non è consigliabile includere unicode nel messaggio di errore? O devo guardare sys.stderr?
# -*- coding: utf-8 -*-
class MyException(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return self.value
def __repr__(self):
return self.value
def __unicode__(self):
return self.value
desc = u'something bad with field \u4443'
try:
raise MyException(desc)
except MyException as e:
print(u'Inside try block : ' + unicode(e))
# here is what i wish to make work
raise MyException(desc)
Lo script in esecuzione produce l'output di seguito. All'interno del mio tentativo/eccetto che posso stampare la stringa senza problemi.
Il mio problema è al di fuori del tentativo/eccetto.
Inside try block : something bad with field 䑃
Traceback (most recent call last):
File "C:\Python27\lib\bdb.py", line 387, in run
exec cmd in globals, locals
File "C:\Users\ghis3080\r.py", line 25, in <module>
raise MyException(desc)
MyException: something bad with field \u4443
Grazie in anticipo.
.encode ('utf-8') mi ha davvero aiutato, non ho nemmeno dovuto usare il secondo parametro. –