diff options
Diffstat (limited to 'Lib/traceback.py')
| -rw-r--r-- | Lib/traceback.py | 19 | 
1 files changed, 13 insertions, 6 deletions
diff --git a/Lib/traceback.py b/Lib/traceback.py index 1eec209..5ab3ec6b 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -3,6 +3,7 @@  import linecache  import string  import sys +import types  def print_tb(tb, limit = None):  	if limit is None: @@ -41,23 +42,29 @@ def extract_tb(tb, limit = None):  		n = n+1  	return list -def print_exception(type, value, tb, limit = None): +def print_exception(etype, value, tb, limit = None):  	if tb:  		print 'Traceback (innermost last):'  		print_tb(tb, limit) +	if type(etype) == types.ClassType: +		stype = etype.__name__ +	else: +		stype = etype  	if value is None: -		print type +		print stype  	else: -		if type is SyntaxError: +		if etype is SyntaxError:  			try:  				msg, (filename, lineno, offset, line) = value  			except:  				pass  			else:  				if not filename: filename = "<string>" -				print '  File "%s", line %d' % (filename, lineno) +				print '  File "%s", line %d' % \ +				      (filename, lineno)  				i = 0 -				while i < len(line) and line[i] in string.whitespace: +				while i < len(line) and \ +				      line[i] in string.whitespace:  					i = i+1  				s = '    '  				print s + string.strip(line) @@ -68,7 +75,7 @@ def print_exception(type, value, tb, limit = None):  						s = s + ' '  				print s + '^'  				value = msg -		print '%s: %s' % (type, value) +		print '%s: %s' % (stype, value)  def print_exc(limit = None):  	print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback,  | 
