Commit f15d1596 authored by Guido van Rossum's avatar Guido van Rossum

Use sys.exc_info() where needed.

parent c90ad210
...@@ -148,7 +148,7 @@ class Bdb: # Basic Debugger ...@@ -148,7 +148,7 @@ class Bdb: # Basic Debugger
try: try:
1 + '' 1 + ''
except: except:
frame = sys.exc_traceback.tb_frame.f_back frame = sys.exc_info()[2].tb_frame.f_back
self.reset() self.reset()
while frame: while frame:
frame.f_trace = self.trace_dispatch frame.f_trace = self.trace_dispatch
...@@ -168,7 +168,7 @@ class Bdb: # Basic Debugger ...@@ -168,7 +168,7 @@ class Bdb: # Basic Debugger
try: try:
1 + '' # raise an exception 1 + '' # raise an exception
except: except:
frame = sys.exc_traceback.tb_frame.f_back frame = sys.exc_info()[2].tb_frame.f_back
while frame and frame is not self.botframe: while frame and frame is not self.botframe:
del frame.f_trace del frame.f_trace
frame = frame.f_back frame = frame.f_back
......
...@@ -1210,7 +1210,7 @@ def test(environ=os.environ): ...@@ -1210,7 +1210,7 @@ def test(environ=os.environ):
def print_exception(type=None, value=None, tb=None, limit=None): def print_exception(type=None, value=None, tb=None, limit=None):
if type is None: if type is None:
type, value, tb = sys.exc_type, sys.exc_value, sys.exc_traceback type, value, tb = sys.exc_info()
import traceback import traceback
print print
print "<H3>Traceback (innermost last):</H3>" print "<H3>Traceback (innermost last):</H3>"
...@@ -1220,6 +1220,7 @@ def print_exception(type=None, value=None, tb=None, limit=None): ...@@ -1220,6 +1220,7 @@ def print_exception(type=None, value=None, tb=None, limit=None):
escape(string.join(list[:-1], "")), escape(string.join(list[:-1], "")),
escape(list[-1]), escape(list[-1]),
) )
del tb
def print_environ(environ=os.environ): def print_environ(environ=os.environ):
"""Dump the shell environment as HTML.""" """Dump the shell environment as HTML."""
......
...@@ -74,13 +74,14 @@ def browserexec(tb, cmd): ...@@ -74,13 +74,14 @@ def browserexec(tb, cmd):
try: try:
exec cmd+'\n' in globals, locals exec cmd+'\n' in globals, locals
except: except:
t, v = sys.exc_info()[:2]
print '*** Exception:', print '*** Exception:',
if type(sys.exc_type) == type(''): if type(t) == type(''):
print sys.exc_type, print t,
else: else:
print sys.exc_type.__name__, print t.__name__,
if sys.exc_value <> None: if v <> None:
print ':', sys.exc_value, print ':', v,
print print
print 'Type help to get help.' print 'Type help to get help.'
......
...@@ -379,7 +379,7 @@ class Folder: ...@@ -379,7 +379,7 @@ class Folder:
if not seqs.has_key(head): if not seqs.has_key(head):
if not msg: if not msg:
msg = "bad message list %s" % seq msg = "bad message list %s" % seq
raise Error, msg, sys.exc_traceback raise Error, msg, sys.exc_info()[2]
msgs = seqs[head] msgs = seqs[head]
if not msgs: if not msgs:
raise Error, "sequence %s empty" % head raise Error, "sequence %s empty" % head
......
...@@ -412,8 +412,7 @@ def test(): ...@@ -412,8 +412,7 @@ def test():
try: try:
testproper() testproper()
except: except:
sys.last_type, sys.last_value, sys.last_traceback = ( sys.last_type, sys.last_value, sys.last_traceback = sys.exc_info()
sys.exc_type, sys.exc_value, sys.exc_traceback)
print print
print sys.last_type, ':', sys.last_value print sys.last_type, ':', sys.last_value
print print
......
...@@ -412,8 +412,7 @@ def test(): ...@@ -412,8 +412,7 @@ def test():
try: try:
testproper() testproper()
except: except:
sys.last_type, sys.last_value, sys.last_traceback = ( sys.last_type, sys.last_value, sys.last_traceback = sys.exc_info()
sys.exc_type, sys.exc_value, sys.exc_traceback)
print print
print sys.last_type, ':', sys.last_value print sys.last_type, ':', sys.last_value
print print
......
...@@ -80,10 +80,11 @@ class Pdb(bdb.Bdb, cmd.Cmd): ...@@ -80,10 +80,11 @@ class Pdb(bdb.Bdb, cmd.Cmd):
code = compile(line + '\n', '<stdin>', 'single') code = compile(line + '\n', '<stdin>', 'single')
exec code in globals, locals exec code in globals, locals
except: except:
if type(sys.exc_type) == type(''): t, v = sys.exc_info()[:2]
exc_type_name = sys.exc_type if type(t) == type(''):
else: exc_type_name = sys.exc_type.__name__ exc_type_name = t
print '***', exc_type_name + ':', sys.exc_value else: exc_type_name = t.__name__
print '***', exc_type_name + ':', v
# Command definitions, called by cmdloop() # Command definitions, called by cmdloop()
# The argument is the remaining string on the command line # The argument is the remaining string on the command line
...@@ -219,10 +220,11 @@ class Pdb(bdb.Bdb, cmd.Cmd): ...@@ -219,10 +220,11 @@ class Pdb(bdb.Bdb, cmd.Cmd):
value = eval(arg, self.curframe.f_globals, \ value = eval(arg, self.curframe.f_globals, \
self.curframe.f_locals) self.curframe.f_locals)
except: except:
if type(sys.exc_type) == type(''): t, v = sys.exc_info()[:2]
exc_type_name = sys.exc_type if type(t) == type(''):
else: exc_type_name = sys.exc_type.__name__ exc_type_name = t
print '***', exc_type_name + ':', `sys.exc_value` else: exc_type_name = t.__name__
print '***', exc_type_name + ':', `v`
return return
print `value` print `value`
...@@ -277,10 +279,11 @@ class Pdb(bdb.Bdb, cmd.Cmd): ...@@ -277,10 +279,11 @@ class Pdb(bdb.Bdb, cmd.Cmd):
value = eval(arg, self.curframe.f_globals, \ value = eval(arg, self.curframe.f_globals, \
self.curframe.f_locals) self.curframe.f_locals)
except: except:
if type(sys.exc_type) == type(''): t, v = sys.exc_info()[:2]
exc_type_name = sys.exc_type if type(t) == type(''):
else: exc_type_name = sys.exc_type.__name__ exc_type_name = t
print '***', exc_type_name + ':', `sys.exc_value` else: exc_type_name = t.__name__
print '***', exc_type_name + ':', `v`
return return
code = None code = None
# Is it a function? # Is it a function?
......
...@@ -74,13 +74,14 @@ def browserexec(tb, cmd): ...@@ -74,13 +74,14 @@ def browserexec(tb, cmd):
try: try:
exec cmd+'\n' in globals, locals exec cmd+'\n' in globals, locals
except: except:
t, v = sys.exc_info()[:2]
print '*** Exception:', print '*** Exception:',
if type(sys.exc_type) == type(''): if type(t) == type(''):
print sys.exc_type, print t,
else: else:
print sys.exc_type.__name__, print t.__name__,
if sys.exc_value <> None: if v <> None:
print ':', sys.exc_value, print ':', v,
print print
print 'Type help to get help.' print 'Type help to get help.'
......
...@@ -51,10 +51,12 @@ try: ...@@ -51,10 +51,12 @@ try:
raise TypeError raise TypeError
except TypeError: except TypeError:
try: try:
TracebackType = type(sys.exc_traceback) tb = sys.exc_info()[2]
FrameType = type(sys.exc_traceback.tb_frame) TracebackType = type(tb)
FrameType = type(tb.tb_frame)
except: except:
pass pass
tb = None; del tb
SliceType = type(slice(0)) SliceType = type(slice(0))
EllipsisType = type(Ellipsis) EllipsisType = type(Ellipsis)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment