Skip to content

Commit 44bd3fe

Browse files
authored
gh-102799: use exception instance instead of sys.exc_info() (#102885)
1 parent c1e71ce commit 44bd3fe

File tree

7 files changed

+16
-17
lines changed

7 files changed

+16
-17
lines changed

Lib/logging/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,8 @@ def currentframe():
173173
"""Return the frame object for the caller's stack frame."""
174174
try:
175175
raise Exception
176-
except Exception:
177-
return sys.exc_info()[2].tb_frame.f_back
176+
except Exception as exc:
177+
return exc.__traceback__.tb_frame.f_back
178178

179179
#
180180
# _srcfile is used when walking the stack to check when we've got the first

Lib/pickle.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1481,7 +1481,7 @@ def _instantiate(self, klass, args):
14811481
value = klass(*args)
14821482
except TypeError as err:
14831483
raise TypeError("in constructor for %s: %s" %
1484-
(klass.__name__, str(err)), sys.exc_info()[2])
1484+
(klass.__name__, str(err)), err.__traceback__)
14851485
else:
14861486
value = klass.__new__(klass)
14871487
self.append(value)

Lib/site.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,11 @@ def addpackage(sitedir, name, known_paths):
190190
if not dircase in known_paths and os.path.exists(dir):
191191
sys.path.append(dir)
192192
known_paths.add(dircase)
193-
except Exception:
193+
except Exception as exc:
194194
print("Error processing line {:d} of {}:\n".format(n+1, fullname),
195195
file=sys.stderr)
196196
import traceback
197-
for record in traceback.format_exception(*sys.exc_info()):
197+
for record in traceback.format_exception(exc):
198198
for line in record.splitlines():
199199
print(' '+line, file=sys.stderr)
200200
print("\nRemainder of file ignored", file=sys.stderr)

Lib/test/inspect_fodder.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# line 1
22
'A module docstring.'
33

4-
import sys, inspect
4+
import inspect
55
# line 5
66

77
# line 7
@@ -41,8 +41,8 @@ def abuse(self, a, b, c):
4141
def argue(self, a, b, c):
4242
try:
4343
spam(a, b, c)
44-
except:
45-
self.ex = sys.exc_info()
44+
except BaseException as e:
45+
self.ex = e
4646
self.tr = inspect.trace()
4747

4848
@property
@@ -78,8 +78,8 @@ async def lobbest(grenade):
7878
currentframe = inspect.currentframe()
7979
try:
8080
raise Exception()
81-
except:
82-
tb = sys.exc_info()[2]
81+
except BaseException as e:
82+
tb = e.__traceback__
8383

8484
class Callable:
8585
def __call__(self, *args):

Lib/test/test_inspect.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ def __init__(self, *args, **kwargs):
430430
git.abuse(7, 8, 9)
431431

432432
def test_abuse_done(self):
433-
self.istest(inspect.istraceback, 'git.ex[2]')
433+
self.istest(inspect.istraceback, 'git.ex.__traceback__')
434434
self.istest(inspect.isframe, 'mod.fr')
435435

436436
def test_stack(self):

Lib/test/test_with.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ def __exit__(self, *exc_info):
7979
try:
8080
if mgr.__exit__(*ex):
8181
ex = (None, None, None)
82-
except:
83-
ex = sys.exc_info()
82+
except BaseException as e:
83+
ex = (type(e), e, e.__traceback__)
8484
self.entered = None
8585
if ex is not exc_info:
86-
raise ex[0](ex[1]).with_traceback(ex[2])
86+
raise ex
8787

8888

8989
class MockNested(Nested):

Lib/tkinter/filedialog.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,6 @@ def test():
461461

462462
# Start off with UTF-8
463463
enc = "utf-8"
464-
import sys
465464

466465
# See whether CODESET is defined
467466
try:
@@ -477,9 +476,9 @@ def test():
477476
try:
478477
fp=open(openfilename,"r")
479478
fp.close()
480-
except:
479+
except BaseException as exc:
481480
print("Could not open File: ")
482-
print(sys.exc_info()[1])
481+
print(exc)
483482

484483
print("open", openfilename.encode(enc))
485484

0 commit comments

Comments
 (0)