diff --git a/Applications/CLI/ogs.cpp b/Applications/CLI/ogs.cpp index 6fa28db83adf2fc61f4d83ba0323818396500dac..58164cfe6f09c98dc6326735a8886f380016a7a1 100644 --- a/Applications/CLI/ogs.cpp +++ b/Applications/CLI/ogs.cpp @@ -71,36 +71,41 @@ int main(int argc, char *argv[]) cmd.parse(argc, argv); - ApplicationsLib::LogogSetup logog_setup; logog_setup.setLevel(log_level_arg.getValue()); - ApplicationsLib::LinearSolverLibrarySetup linear_solver_library_setup( - argc, argv); + try { + ApplicationsLib::LinearSolverLibrarySetup linear_solver_library_setup( + argc, argv); - auto project_config = BaseLib::makeConfigTree( - project_arg.getValue(), !nonfatal_arg.getValue(), "OpenGeoSysProject"); - ProjectData project(*project_config, BaseLib::extractPath(project_arg.getValue()), - outdir_arg.getValue()); + auto project_config = BaseLib::makeConfigTree( + project_arg.getValue(), !nonfatal_arg.getValue(), "OpenGeoSysProject"); - project_config.checkAndInvalidate(); + ProjectData project(*project_config, BaseLib::extractPath(project_arg.getValue()), + outdir_arg.getValue()); + project_config.checkAndInvalidate(); - // Create processes. - project.buildProcesses(); - INFO("Initialize processes."); - for (auto p_it = project.processesBegin(); p_it != project.processesEnd(); ++p_it) - { - (*p_it)->initialize(); - } + // Create processes. + project.buildProcesses(); + INFO("Initialize processes."); + for (auto p_it = project.processesBegin(); p_it != project.processesEnd(); ++p_it) + { + (*p_it)->initialize(); + } - INFO("Solve processes."); - auto& time_loop = project.getTimeLoop(); - bool solver_succeeded = time_loop.loop(project); + INFO("Solve processes."); - return solver_succeeded ? EXIT_SUCCESS : EXIT_FAILURE; + auto& time_loop = project.getTimeLoop(); + bool solver_succeeded = time_loop.loop(project); + + return solver_succeeded ? EXIT_SUCCESS : EXIT_FAILURE; + } catch (std::exception& e) { + ERR(e.what()); + return EXIT_FAILURE; + } }