diff --git a/picard/__init__.py b/picard/__init__.py index e60db6745..695b7240f 100644 --- a/picard/__init__.py +++ b/picard/__init__.py @@ -132,10 +132,10 @@ def crash_handler(exc: Exception = None): app.quit() -def _global_exception_handler(exctype, value, traceback): - from picard import crash_handler - crash_handler(exc=value) - sys.__excepthook__(exctype, value, traceback) +def register_excepthook(): + def _global_exception_handler(exctype, value, traceback): + from picard import crash_handler + crash_handler(exc=value) + sys.__excepthook__(exctype, value, traceback) - -sys.excepthook = _global_exception_handler + sys.excepthook = _global_exception_handler diff --git a/picard/tagger.py b/picard/tagger.py index 89428de0b..897045411 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -73,6 +73,7 @@ from picard import ( PICARD_ORG_NAME, acoustid, log, + register_excepthook, ) from picard.acoustid.manager import AcoustIDManager from picard.album import ( @@ -1505,6 +1506,8 @@ If a new instance will not be spawned files/directories will be passed to the ex def main(localedir=None, autoupdate=True): + register_excepthook() + # Some libs (ie. Phonon) require those to be set QtWidgets.QApplication.setApplicationName(PICARD_APP_NAME) QtWidgets.QApplication.setOrganizationName(PICARD_ORG_NAME)