core: Improve handling of core initialization errors
[quassel.git] / src / common / main.cpp
index 3076eea..6c4b5a4 100644 (file)
@@ -71,6 +71,7 @@ Q_IMPORT_PLUGIN(qgif)
 #endif
 
 #include "quassel.h"
+#include "types.h"
 
 int main(int argc, char **argv)
 {
@@ -241,8 +242,15 @@ int main(int argc, char **argv)
     AboutData::setQuasselPersons(&aboutData);
     KAboutData::setApplicationData(aboutData.kAboutData());
 #endif
-    if (!app.init())
-        return EXIT_FAILURE;
+    try {
+        app.init();
+    }
+    catch (ExitException e) {
+        if (!e.errorString.isEmpty()) {
+            qCritical() << e.errorString;
+        }
+        return e.exitCode;
+    }
 
     return app.exec();
 }