Set LoadFile and LoadAllFromFile to throw an exception if we can't load the file

This commit is contained in:
Jesse Beder
2012-11-08 18:14:26 -06:00
parent a03e861d8c
commit 0c772c4c3f
2 changed files with 10 additions and 0 deletions

View File

@@ -70,6 +70,7 @@ namespace YAML
const char * const INVALID_ANCHOR = "invalid anchor";
const char * const INVALID_ALIAS = "invalid alias";
const char * const INVALID_TAG = "invalid tag";
const char * const BAD_FILE = "bad file";
template <typename T>
inline const std::string KEY_NOT_FOUND_WITH_KEY(const T&, typename disable_if<is_numeric<T> >::type * = 0) {
@@ -190,6 +191,11 @@ namespace YAML
EmitterException(const std::string& msg_)
: Exception(Mark::null(), msg_) {}
};
class BadFile: public Exception {
public:
BadFile(): Exception(Mark::null(), ErrorMsg::BAD_FILE) {}
};
}
#endif // EXCEPTIONS_H_62B23520_7C8E_11DE_8A39_0800200C9A66

View File

@@ -30,6 +30,8 @@ namespace YAML
Node LoadFile(const std::string& filename) {
std::ifstream fin(filename.c_str());
if(!fin)
throw BadFile();
return Load(fin);
}
@@ -59,6 +61,8 @@ namespace YAML
std::vector<Node> LoadAllFromFile(const std::string& filename) {
std::ifstream fin(filename.c_str());
if(!fin)
throw BadFile();
return LoadAll(fin);
}
}