From af2fcde0318c88e71f171d97e685bd1fc03b7d43 Mon Sep 17 00:00:00 2001 From: Nav Date: Sat, 24 Sep 2022 18:35:31 +0100 Subject: [PATCH] Catch YAML exceptions when parsing bloom.yaml --- src/Application.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Application.cpp b/src/Application.cpp index 1f7c39fb..c11b7771 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -4,6 +4,8 @@ #include #include #include +#include +#include #include "src/Logger/Logger.hpp" #include "src/Helpers/Paths.hpp" @@ -75,7 +77,7 @@ namespace Bloom } } catch (const InvalidConfig& exception) { - Logger::error(exception.getMessage()); + Logger::error("Invalid project configuration (bloom.yaml) - " + exception.getMessage()); } catch (const Exception& exception) { Logger::error(exception.getMessage()); @@ -263,10 +265,15 @@ namespace Bloom ); } - const auto configNode = YAML::Load(configFile.readAll().toStdString()); - configFile.close(); + try { + const auto configNode = YAML::Load(configFile.readAll().toStdString()); + configFile.close(); - this->projectConfig = ProjectConfig(configNode); + this->projectConfig = ProjectConfig(configNode); + + } catch (const YAML::Exception& exception) { + throw InvalidConfig(exception.msg); + } // Validate the selected environment if (!this->projectConfig->environments.contains(this->selectedEnvironmentName)) {