mirror of https://github.com/python/cpython
gh-102799: use exception instance instead of sys.exc_info() (#102885)
This commit is contained in:
parent
c1e71ce56f
commit
44bd3fe570
|
@ -173,8 +173,8 @@ else: #pragma: no cover
|
|||
"""Return the frame object for the caller's stack frame."""
|
||||
try:
|
||||
raise Exception
|
||||
except Exception:
|
||||
return sys.exc_info()[2].tb_frame.f_back
|
||||
except Exception as exc:
|
||||
return exc.__traceback__.tb_frame.f_back
|
||||
|
||||
#
|
||||
# _srcfile is used when walking the stack to check when we've got the first
|
||||
|
|
|
@ -1481,7 +1481,7 @@ class _Unpickler:
|
|||
value = klass(*args)
|
||||
except TypeError as err:
|
||||
raise TypeError("in constructor for %s: %s" %
|
||||
(klass.__name__, str(err)), sys.exc_info()[2])
|
||||
(klass.__name__, str(err)), err.__traceback__)
|
||||
else:
|
||||
value = klass.__new__(klass)
|
||||
self.append(value)
|
||||
|
|
|
@ -190,11 +190,11 @@ def addpackage(sitedir, name, known_paths):
|
|||
if not dircase in known_paths and os.path.exists(dir):
|
||||
sys.path.append(dir)
|
||||
known_paths.add(dircase)
|
||||
except Exception:
|
||||
except Exception as exc:
|
||||
print("Error processing line {:d} of {}:\n".format(n+1, fullname),
|
||||
file=sys.stderr)
|
||||
import traceback
|
||||
for record in traceback.format_exception(*sys.exc_info()):
|
||||
for record in traceback.format_exception(exc):
|
||||
for line in record.splitlines():
|
||||
print(' '+line, file=sys.stderr)
|
||||
print("\nRemainder of file ignored", file=sys.stderr)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# line 1
|
||||
'A module docstring.'
|
||||
|
||||
import sys, inspect
|
||||
import inspect
|
||||
# line 5
|
||||
|
||||
# line 7
|
||||
|
@ -41,8 +41,8 @@ class StupidGit:
|
|||
def argue(self, a, b, c):
|
||||
try:
|
||||
spam(a, b, c)
|
||||
except:
|
||||
self.ex = sys.exc_info()
|
||||
except BaseException as e:
|
||||
self.ex = e
|
||||
self.tr = inspect.trace()
|
||||
|
||||
@property
|
||||
|
@ -78,8 +78,8 @@ async def lobbest(grenade):
|
|||
currentframe = inspect.currentframe()
|
||||
try:
|
||||
raise Exception()
|
||||
except:
|
||||
tb = sys.exc_info()[2]
|
||||
except BaseException as e:
|
||||
tb = e.__traceback__
|
||||
|
||||
class Callable:
|
||||
def __call__(self, *args):
|
||||
|
|
|
@ -430,7 +430,7 @@ class TestInterpreterStack(IsTestBase):
|
|||
git.abuse(7, 8, 9)
|
||||
|
||||
def test_abuse_done(self):
|
||||
self.istest(inspect.istraceback, 'git.ex[2]')
|
||||
self.istest(inspect.istraceback, 'git.ex.__traceback__')
|
||||
self.istest(inspect.isframe, 'mod.fr')
|
||||
|
||||
def test_stack(self):
|
||||
|
|
|
@ -79,11 +79,11 @@ class Nested(object):
|
|||
try:
|
||||
if mgr.__exit__(*ex):
|
||||
ex = (None, None, None)
|
||||
except:
|
||||
ex = sys.exc_info()
|
||||
except BaseException as e:
|
||||
ex = (type(e), e, e.__traceback__)
|
||||
self.entered = None
|
||||
if ex is not exc_info:
|
||||
raise ex[0](ex[1]).with_traceback(ex[2])
|
||||
raise ex
|
||||
|
||||
|
||||
class MockNested(Nested):
|
||||
|
|
|
@ -461,7 +461,6 @@ def test():
|
|||
|
||||
# Start off with UTF-8
|
||||
enc = "utf-8"
|
||||
import sys
|
||||
|
||||
# See whether CODESET is defined
|
||||
try:
|
||||
|
@ -477,9 +476,9 @@ def test():
|
|||
try:
|
||||
fp=open(openfilename,"r")
|
||||
fp.close()
|
||||
except:
|
||||
except BaseException as exc:
|
||||
print("Could not open File: ")
|
||||
print(sys.exc_info()[1])
|
||||
print(exc)
|
||||
|
||||
print("open", openfilename.encode(enc))
|
||||
|
||||
|
|
Loading…
Reference in New Issue