メッセージにUnicodeを含むPython2.7.xで例外を発生させようとしています。私はそれを機能させることができないようです。
エラーメッセージにUnicodeを含めることはサポートされていないか、推奨されていませんか?または、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)
スクリプトを実行すると、以下の出力が生成されます。私のtry/exceptの中で私は問題なく文字列を印刷することができます。
私の問題はtry/exceptの外にあります。
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
前もって感謝します。