Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c7acf2a

Browse files
committed
handle class exceptions
1 parent cebfa70 commit c7acf2a

4 files changed

Lines changed: 25 additions & 9 deletions

File tree

Lib/compileall.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ def compile_dir(dir, maxlevels = 10):
3030
print '\n[interrupt]'
3131
break
3232
except:
33-
print 'Sorry:', sys.exc_type + ':',
33+
if type(sys.exc_type) == type(''):
34+
exc_type_name = sys.exc_type
35+
else: exc_type_name = sys.exc_type.__name__
36+
print 'Sorry:', exc_type_name + ':',
3437
print sys.exc_value
3538
elif maxlevels > 0 and \
3639
name != os.curdir and name != os.pardir and \

Lib/lib-old/tb.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,10 @@ def browserexec(tb, cmd):
7474
exec(cmd+'\n', globals, locals)
7575
except:
7676
print '*** Exception:',
77-
print sys.exc_type,
77+
if type(sys.exc_type) == type(''):
78+
print sys.exc_type,
79+
else:
80+
print sys.exc_type.__name__,
7881
if sys.exc_value <> None:
7982
print ':', sys.exc_value,
8083
print

Lib/tb.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,10 @@ def browserexec(tb, cmd):
7474
exec(cmd+'\n', globals, locals)
7575
except:
7676
print '*** Exception:',
77-
print sys.exc_type,
77+
if type(sys.exc_type) == type(''):
78+
print sys.exc_type,
79+
else:
80+
print sys.exc_type.__name__,
7881
if sys.exc_value <> None:
7982
print ':', sys.exc_value,
8083
print

Lib/traceback.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import linecache
44
import string
55
import sys
6+
import types
67

78
def print_tb(tb, limit = None):
89
if limit is None:
@@ -41,23 +42,29 @@ def extract_tb(tb, limit = None):
4142
n = n+1
4243
return list
4344

44-
def print_exception(type, value, tb, limit = None):
45+
def print_exception(etype, value, tb, limit = None):
4546
if tb:
4647
print 'Traceback (innermost last):'
4748
print_tb(tb, limit)
49+
if type(etype) == types.ClassType:
50+
stype = etype.__name__
51+
else:
52+
stype = etype
4853
if value is None:
49-
print type
54+
print stype
5055
else:
51-
if type is SyntaxError:
56+
if etype is SyntaxError:
5257
try:
5358
msg, (filename, lineno, offset, line) = value
5459
except:
5560
pass
5661
else:
5762
if not filename: filename = "<string>"
58-
print ' File "%s", line %d' % (filename, lineno)
63+
print ' File "%s", line %d' % \
64+
(filename, lineno)
5965
i = 0
60-
while i < len(line) and line[i] in string.whitespace:
66+
while i < len(line) and \
67+
line[i] in string.whitespace:
6168
i = i+1
6269
s = ' '
6370
print s + string.strip(line)
@@ -68,7 +75,7 @@ def print_exception(type, value, tb, limit = None):
6875
s = s + ' '
6976
print s + '^'
7077
value = msg
71-
print '%s: %s' % (type, value)
78+
print '%s: %s' % (stype, value)
7279

7380
def print_exc(limit = None):
7481
print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback,

0 commit comments

Comments
 (0)