In article <[EMAIL PROTECTED]>,
"Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
> >> I have code like this:
> >> except Exception, e:
> >> self.setState(self.Failed, str(e))
> >> which fails if the exception contains a unicode argument.
> >
> > Fails how?
>
> ASCII encoding error, I suppose. It fails only if a) one argument
> is a Unicode object, and b) that Unicode object contains non-ASCII
> parameters.
Seem ironic that this fails even though pretty nearly anything
else is a valid input to str() -- socket, dict, whatever?
A sort of generic solution might be to follow str's behavior
with respect to '__str__', extending it to fall back to repr()
whatever goes wrong.
def xtr(a):
try:
return str(a)
except:
return repr(a)
...
self.setState(self.Failed, xtr(e))
Donn Cave, [EMAIL PROTECTED]
--
http://mail.python.org/mailman/listinfo/python-list