In article <[email protected]>, Steven D'Aprano <[email protected]> wrote:
> On Thu, 16 Jan 2014 13:34:08 +0100, Ernest Adrogué wrote: > > > Hi, > > > > There seems to be some inconsistency in the way exceptions handle > > Unicode strings. > > Yes. I believe the problem lies in the __str__ method. For example, > KeyError manages to handle Unicode, although in an ugly way: > > py> str(KeyError(u'ä')) > "u'\\xe4'" > > Hence: > > py> raise KeyError(u'ä') > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > KeyError: u'\xe4' > > > While ValueError assumes ASCII and fails: > > py> str(ValueError(u'ä')) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in > position 0: ordinal not in range(128) > > When displaying the traceback, the error is suppressed, hence: > > py> raise ValueError(u'ä') > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > ValueError > > > I believe this might be accepted as a bug report on ValueError. If you try to construct an instance of ValueError with an argument it can't handle, the obvious thing for it to do is raise ValueError :-)
-- https://mail.python.org/mailman/listinfo/python-list
