diff --git a/aegisub/src/main.cpp b/aegisub/src/main.cpp
index 004f21d61cf1045c772f2541b49101315ab53d37..167b20a06e677c3e78b6107f8df347744033b7ef 100644
--- a/aegisub/src/main.cpp
+++ b/aegisub/src/main.cpp
@@ -400,20 +400,8 @@ void AegisubApp::HandleEvent(wxEvtHandler *handler, wxEventFunction func, wxEven
 	try {
 		wxApp::HandleEvent(handler, func, event);
 	}
-	catch (const agi::Exception &e) {
-		SHOW_EXCEPTION(to_wx(e.GetChainedMessage()));
-	}
-	catch (const std::exception &e) {
-		SHOW_EXCEPTION(to_wx(e.what()));
-	}
-	catch (const char *e) {
-		SHOW_EXCEPTION(to_wx(e));
-	}
-	catch (const wxString &e) {
-		SHOW_EXCEPTION(e);
-	}
 	catch (...) {
-		SHOW_EXCEPTION("Unknown error");
+		const_cast<AegisubApp *>(this)->OnExceptionInMainLoop();
 	}
 }