bpo-45614: Fix traceback display for exceptions with invalid module name (GH-29726) (GH-29826)
(cherry picked from commit 4dfae6f38e1720ddafcdd68043e476ecb41cb4d5)
diff --git a/Lib/traceback.py b/Lib/traceback.py
index 901b994..d6a010f 100644
--- a/Lib/traceback.py
+++ b/Lib/traceback.py
@@ -604,6 +604,8 @@ def format_exception_only(self):
stype = self.exc_type.__qualname__
smod = self.exc_type.__module__
if smod not in ("__main__", "builtins"):
+ if not isinstance(smod, str):
+ smod = "<unknown>"
stype = smod + '.' + stype
if not issubclass(self.exc_type, SyntaxError):