summaryrefslogtreecommitdiff
path: root/sphinx/events.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/events.py')
-rw-r--r--sphinx/events.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/sphinx/events.py b/sphinx/events.py
index 806a6e55d..e3a3b964f 100644
--- a/sphinx/events.py
+++ b/sphinx/events.py
@@ -19,6 +19,7 @@ from sphinx.deprecation import RemovedInSphinx40Warning
from sphinx.errors import ExtensionError, SphinxError
from sphinx.locale import __
from sphinx.util import logging
+from sphinx.util.inspect import safe_getattr
if False:
# For type annotation
@@ -114,8 +115,9 @@ class EventManager:
except SphinxError:
raise
except Exception as exc:
+ modname = safe_getattr(listener.handler, '__module__', None)
raise ExtensionError(__("Handler %r for event %r threw an exception") %
- (listener.handler, name), exc) from exc
+ (listener.handler, name), exc, modname=modname) from exc
return results
def emit_firstresult(self, name: str, *args: Any,