diff --git a/include/caosdb/status_code.h b/include/caosdb/status_code.h index 5689b9ebeab94d01272ce049d3cb0e3f16d13665..6a3b2bda984e9a812e65312f4f338d078c75349d 100644 --- a/include/caosdb/status_code.h +++ b/include/caosdb/status_code.h @@ -62,6 +62,7 @@ enum StatusCode { FILE_UPLOAD_ERROR = 35, FILE_DOWNLOAD_ERROR = 36, ENUM_MAPPING_ERROR = 37, + FILE_CANNOT_BE_READ = 38, OTHER_CLIENT_ERROR = 9999, }; diff --git a/include/caosdb/utility.h b/include/caosdb/utility.h index 0cadf664346b31f7de19134eed02d13ff148269d..763646f3da9cf446ed3d9dfe144672acb36d4349 100644 --- a/include/caosdb/utility.h +++ b/include/caosdb/utility.h @@ -35,6 +35,7 @@ #include <fstream> #include <iostream> #include <map> +#include "caosdb/exceptions.h" #include <memory> #include <mutex> #include <shared_mutex> @@ -90,7 +91,12 @@ auto getEnumValueFromName<caosdb::entity::Role>(const std::string &name) -> caos */ inline auto load_string_file(const path &path) -> std::string { std::string result; - boost::filesystem::load_string_file(path, result); + try { + boost::filesystem::load_string_file(path, result); + } catch (const std::exception &exc) { + throw caosdb::exceptions::Exception(StatusCode::FILE_CANNOT_BE_READ , + "Cannot read the following file: "+ path.string()); + } return result; }