diff --git a/qt/aqt/errors.py b/qt/aqt/errors.py index 4cedf31d0..6150b47fb 100644 --- a/qt/aqt/errors.py +++ b/qt/aqt/errors.py @@ -93,7 +93,14 @@ class ErrorHandler(QObject): showWarning(markdown(tr.errors_accessing_db())) return - if self.mw.addonManager.dirty: + must_close = False + if "PanicException" in error: + must_close = True + txt = markdown( + "**A fatal error occurred, and Anki must close. Please report this message on the forums.**" + ) + error = f"{supportText() + self._addonText(error)}\n{error}" + elif self.mw.addonManager.dirty: txt = markdown(tr.errors_addons_active_popup()) error = f"{supportText() + self._addonText(error)}\n{error}" else: @@ -103,6 +110,8 @@ class ErrorHandler(QObject): # show dialog txt = f"{txt}
{error}
" showText(txt, type="html", copyBtn=True) + if must_close: + sys.exit(1) def _addonText(self, error: str) -> str: matches = re.findall(r"addons21/(.*?)/", error)