Added a templated derived exception to KeyNotFound so that you can figure out *which* key wasn't found.

This commit is contained in:
jbeder
2009-01-01 02:40:18 +00:00
parent ad2b9fbaaf
commit 51ea36e444
4 changed files with 25 additions and 13 deletions

View File

@@ -11,11 +11,13 @@ void run()
YAML::Parser parser(fin);
YAML::Node doc;
parser.GetNextDocument(doc);
for(unsigned i=0;i<doc.size();i++) {
bool value;
doc[i] >> value;
std::cout << (value ? "true" : "false") << "\n";
}
std::cout << "name: " << doc["name"] << "\n";
std::cout << "age: " << doc["age"] << "\n";
} catch(YAML::TypedKeyNotFound <std::string>& e) {
std::cout << "Key '" << e.key << "' not found at line " << e.line+1 << ", col " << e.column+1 << "\n";
} catch(YAML::KeyNotFound& e) {
std::cout << "Key not found at line " << e.line+1 << ", col " << e.column+1 << "\n";
} catch(YAML::Exception& e) {
std::cout << "Error at line " << e.line+1 << ", col " << e.column+1 << ": " << e.msg << "\n";
}