]> granicus.if.org Git - python/commitdiff
Use sys.exc_info() where needed.
authorGuido van Rossum <guido@python.org>
Mon, 29 Sep 1997 23:22:12 +0000 (23:22 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 29 Sep 1997 23:22:12 +0000 (23:22 +0000)
Lib/bdb.py
Lib/cgi.py
Lib/lib-old/tb.py
Lib/mhlib.py
Lib/ni.py
Lib/ni1.py
Lib/pdb.py
Lib/tb.py
Lib/types.py

index cab80a281ccf9f9582343e662a105732fc65b9da..e4b6d39a29dcf13d41588b00a2849815b895dbda 100644 (file)
@@ -148,7 +148,7 @@ class Bdb: # Basic Debugger
                try:
                        1 + ''
                except:
-                       frame = sys.exc_traceback.tb_frame.f_back
+                       frame = sys.exc_info()[2].tb_frame.f_back
                self.reset()
                while frame:
                        frame.f_trace = self.trace_dispatch
@@ -168,7 +168,7 @@ class Bdb: # Basic Debugger
                        try:
                                1 + ''  # raise an exception
                        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:
                                del frame.f_trace
                                frame = frame.f_back
index 388e4402d0994299258a11dc4f183f1778a0a103..fb3076c9aa1f7079f8d84c2d4e570d7142836ae4 100755 (executable)
@@ -1210,7 +1210,7 @@ def test(environ=os.environ):
 
 def print_exception(type=None, value=None, tb=None, limit=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
     print
     print "<H3>Traceback (innermost last):</H3>"
@@ -1220,6 +1220,7 @@ def print_exception(type=None, value=None, tb=None, limit=None):
        escape(string.join(list[:-1], "")),
        escape(list[-1]),
        )
+    del tb
 
 def print_environ(environ=os.environ):
     """Dump the shell environment as HTML."""
index 641e8af2e865f90b610df7b6f44e504a8c8c1eb9..5c592ceec18f3335ac30c9100a87d8c890bfea22 100644 (file)
@@ -74,13 +74,14 @@ def browserexec(tb, cmd):
        try:
                exec cmd+'\n' in globals, locals
        except:
+               t, v = sys.exc_info()[:2]
                print '*** Exception:',
-               if type(sys.exc_type) == type(''):
-                       print sys.exc_type,
+               if type(t) == type(''):
+                       print t,
                else:
-                       print sys.exc_type.__name__,
-               if sys.exc_value <> None:
-                       print ':', sys.exc_value,
+                       print t.__name__,
+               if v <> None:
+                       print ':', v,
                print
                print 'Type help to get help.'
 
index 838b2f76a7c4d5a1b61de1e4fdb0426528f7dd64..a78b2c723dfc02b05ecb0be98ac9cc05c8cbadf0 100644 (file)
@@ -379,7 +379,7 @@ class Folder:
                if not seqs.has_key(head):
                    if not msg:
                        msg = "bad message list %s" % seq
-                   raise Error, msg, sys.exc_traceback
+                   raise Error, msg, sys.exc_info()[2]
                msgs = seqs[head]
                if not msgs:
                    raise Error, "sequence %s empty" % head
index fa24d30c3d950a09020115dcd5ef3c5a44c53368..95c9b59cded79c37d4a7f81e92e4bde7b75ebba5 100644 (file)
--- a/Lib/ni.py
+++ b/Lib/ni.py
@@ -412,8 +412,7 @@ def test():
     try:
        testproper()
     except:
-       sys.last_type, sys.last_value, sys.last_traceback = (
-               sys.exc_type, sys.exc_value, sys.exc_traceback)
+       sys.last_type, sys.last_value, sys.last_traceback = sys.exc_info()
        print
        print sys.last_type, ':', sys.last_value
        print
index fa24d30c3d950a09020115dcd5ef3c5a44c53368..95c9b59cded79c37d4a7f81e92e4bde7b75ebba5 100644 (file)
@@ -412,8 +412,7 @@ def test():
     try:
        testproper()
     except:
-       sys.last_type, sys.last_value, sys.last_traceback = (
-               sys.exc_type, sys.exc_value, sys.exc_traceback)
+       sys.last_type, sys.last_value, sys.last_traceback = sys.exc_info()
        print
        print sys.last_type, ':', sys.last_value
        print
index 99e619146c754815eb26586223348dc6072158a6..0dc15a234aead7cc6d6a780b4e3c295607f60912 100755 (executable)
@@ -80,10 +80,11 @@ class Pdb(bdb.Bdb, cmd.Cmd):
                        code = compile(line + '\n', '<stdin>', 'single')
                        exec code in globals, locals
                except:
-                       if type(sys.exc_type) == type(''):
-                               exc_type_name = sys.exc_type
-                       else: exc_type_name = sys.exc_type.__name__
-                       print '***', exc_type_name + ':', sys.exc_value
+                       t, v = sys.exc_info()[:2]
+                       if type(t) == type(''):
+                               exc_type_name = t
+                       else: exc_type_name = t.__name__
+                       print '***', exc_type_name + ':', v
 
        # Command definitions, called by cmdloop()
        # The argument is the remaining string on the command line
@@ -219,10 +220,11 @@ class Pdb(bdb.Bdb, cmd.Cmd):
                        value = eval(arg, self.curframe.f_globals, \
                                        self.curframe.f_locals)
                except:
-                       if type(sys.exc_type) == type(''):
-                               exc_type_name = sys.exc_type
-                       else: exc_type_name = sys.exc_type.__name__
-                       print '***', exc_type_name + ':', `sys.exc_value`
+                       t, v = sys.exc_info()[:2]
+                       if type(t) == type(''):
+                               exc_type_name = t
+                       else: exc_type_name = t.__name__
+                       print '***', exc_type_name + ':', `v`
                        return
 
                print `value`
@@ -277,10 +279,11 @@ class Pdb(bdb.Bdb, cmd.Cmd):
                        value = eval(arg, self.curframe.f_globals, \
                                        self.curframe.f_locals)
                except:
-                       if type(sys.exc_type) == type(''):
-                               exc_type_name = sys.exc_type
-                       else: exc_type_name = sys.exc_type.__name__
-                       print '***', exc_type_name + ':', `sys.exc_value`
+                       t, v = sys.exc_info()[:2]
+                       if type(t) == type(''):
+                               exc_type_name = t
+                       else: exc_type_name = t.__name__
+                       print '***', exc_type_name + ':', `v`
                        return
                code = None
                # Is it a function?
index 641e8af2e865f90b610df7b6f44e504a8c8c1eb9..5c592ceec18f3335ac30c9100a87d8c890bfea22 100644 (file)
--- a/Lib/tb.py
+++ b/Lib/tb.py
@@ -74,13 +74,14 @@ def browserexec(tb, cmd):
        try:
                exec cmd+'\n' in globals, locals
        except:
+               t, v = sys.exc_info()[:2]
                print '*** Exception:',
-               if type(sys.exc_type) == type(''):
-                       print sys.exc_type,
+               if type(t) == type(''):
+                       print t,
                else:
-                       print sys.exc_type.__name__,
-               if sys.exc_value <> None:
-                       print ':', sys.exc_value,
+                       print t.__name__,
+               if v <> None:
+                       print ':', v,
                print
                print 'Type help to get help.'
 
index 5254ebc97d66c7cbea5da5487918b6dc5d87bef6..aeac304d6d90f3fd488b2affa4d76a0e18b263fe 100644 (file)
@@ -51,10 +51,12 @@ try:
     raise TypeError
 except TypeError:
     try:
-       TracebackType = type(sys.exc_traceback)
-       FrameType = type(sys.exc_traceback.tb_frame)
+       tb = sys.exc_info()[2]
+       TracebackType = type(tb)
+       FrameType = type(tb.tb_frame)
     except:
        pass
+    tb = None; del tb
 
 SliceType = type(slice(0))
 EllipsisType = type(Ellipsis)