(Finally) overrode Exception::what()\n

This commit is contained in:
jbeder
2009-07-10 04:17:30 +00:00
parent ae89793c28
commit 6752e25bcd
2 changed files with 7 additions and 1 deletions

View File

@@ -2,6 +2,7 @@
#include <exception> #include <exception>
#include <string> #include <string>
#include <sstream>
namespace YAML namespace YAML
{ {
@@ -62,6 +63,11 @@ namespace YAML
Exception(int line_, int column_, const std::string& msg_) Exception(int line_, int column_, const std::string& msg_)
: line(line_), column(column_), msg(msg_) {} : line(line_), column(column_), msg(msg_) {}
virtual ~Exception() throw() {} virtual ~Exception() throw() {}
virtual const char *what() const throw() {
std::stringstream output;
output << "Error at line " << line+1 << ", column " << column+1 << ": " << msg;
return output.str().c_str();
}
int line, column; int line, column;
std::string msg; std::string msg;

View File

@@ -15,7 +15,7 @@ int main(int argc, char **argv)
YAML::Node doc; YAML::Node doc;
parser.GetNextDocument(doc); parser.GetNextDocument(doc);
} catch(const YAML::Exception& e) { } catch(const YAML::Exception& e) {
std::cerr << "Error at line " << e.line << ", col " << e.column << ": " << e.msg << "\n"; std::cerr << e.what() << "\n";
} }
return 0; return 0;
} }