파이썬 2.7.x에서 유니 코드를 메시지에 포함시키는 예외를 발생 시키려고합니다. 나는 그것을 작동시키는 것처럼 보일 수 없다.파이썬 2에서 비 영어 문자를 포함하는 예외를 발생시킬 수 있습니까?
오류 메시지에 유니 코드를 포함 시키거나 지원하지 않는가? 아니면 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 외부입니다.
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
미리 감사드립니다.
.encode ('utf-8') 정말 도움이되었지만 두 번째 매개 변수를 사용할 필요조차 없었습니다. –