/****************************************************************************** * Handler function for exceptions used in console mode. ******************************************************************************/ void Application::consoleExceptionHandler(const Exception& exception) { for(int i = exception.messages().size() - 1; i >= 0; i--) { std::cerr << "ERROR: " << qPrintable(exception.messages()[i]) << std::endl; } std::cerr << std::flush; }
/****************************************************************************** * Handler function for exceptions used in GUI mode. ******************************************************************************/ void Application::guiExceptionHandler(const Exception& exception) { exception.logError(); QMessageBox msgbox; msgbox.setWindowTitle(tr("Error - %1").arg(QCoreApplication::applicationName())); msgbox.setStandardButtons(QMessageBox::Ok); msgbox.setText(exception.message()); msgbox.setIcon(QMessageBox::Critical); if(exception.messages().size() > 1) { QString detailText; for(int i = 1; i < exception.messages().size(); i++) detailText += exception.messages()[i] + "\n"; msgbox.setDetailedText(detailText); } msgbox.exec(); }