]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/except.cpp
Cosmetic changes
[libs/datafile.git] / source / except.cpp
index eea692e06fd6ee042a3732a52f4ee5fcb96812a8..c698d83c697878945121ea666b06526998f5bd4c 100644 (file)
@@ -1,4 +1,3 @@
-#include <typeinfo>
 #include <msp/debug/demangle.h>
 #include <msp/strings/format.h>
 #include "except.h"
@@ -20,6 +19,12 @@ data_error::data_error(const string &s, unsigned l, const exception &e):
        line(l)
 { }
 
+data_error::data_error(const string &s, unsigned l, const data_error &e):
+       runtime_error(format("%s\n%s", e.what(), make_what(s, l, "Referenced here"))),
+       source(s),
+       line(l)
+{ }
+
 string data_error::make_what(const string &s, unsigned l, const string &w)
 {
        if(l)
@@ -48,5 +53,20 @@ nesting_error::nesting_error(const string &w):
        logic_error(w)
 { }
 
+
+unknown_keyword::unknown_keyword(const string &k):
+       runtime_error(k)
+{ }
+
+
+invalid_signature::invalid_signature(const string &k, const string &s):
+       runtime_error(format("%s %s", k, s))
+{ }
+
+
+no_collection::no_collection(const type_info &t):
+       runtime_error(Debug::demangle(t.name()))
+{ }
+
 } // namespace DataFile
 } // namespace Msp