diff --git a/aegisub/src/main.cpp b/aegisub/src/main.cpp
index 66ac3ac1d558871f64f2e23e13bd2b4ed9207b39..9b039068a38fe8b76c67fcbc0d71fd4491b73b68 100644
--- a/aegisub/src/main.cpp
+++ b/aegisub/src/main.cpp
@@ -404,20 +404,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();
 	}
 }