Patch by Toby Dickenson: don't die when an error occurs during string
conversion in an exception, but instead display <unprintable %s object> where %s is the type name.
This commit is contained in:
parent
986659fffe
commit
2823f03a56
|
@ -166,9 +166,15 @@ def format_exception_only(etype, value):
|
||||||
s = s + ' '
|
s = s + ' '
|
||||||
list.append('%s^\n' % s)
|
list.append('%s^\n' % s)
|
||||||
value = msg
|
value = msg
|
||||||
list.append('%s: %s\n' % (str(stype), str(value)))
|
list.append('%s: %s\n' % (str(stype), _some_str(value)))
|
||||||
return list
|
return list
|
||||||
|
|
||||||
|
def _some_str(value):
|
||||||
|
try:
|
||||||
|
return str(value)
|
||||||
|
except:
|
||||||
|
return '<unprintable %s object>' % type(value).__name__
|
||||||
|
|
||||||
|
|
||||||
def print_exc(limit=None, file=None):
|
def print_exc(limit=None, file=None):
|
||||||
"""This is a shorthand for 'print_exception(sys.exc_type,
|
"""This is a shorthand for 'print_exception(sys.exc_type,
|
||||||
|
|
Loading…
Reference in New Issue