--- /dev/null
+#ifndef MSP_DATAFILE_DATAERROR_H_
+#define MSP_DATAFILE_DATAERROR_H_
+
+#include <stdexcept>
+
+namespace Msp {
+namespace DataFile {
+
+class data_error: public std::runtime_error
+{
+private:
+ std::string source;
+ unsigned line;
+
+public:
+ data_error(const std::string &, unsigned, const std::string &);
+ data_error(const std::string &, unsigned, const std::exception &);
+ virtual ~data_error() throw() { }
+
+private:
+ std::string make_what(const std::string &, unsigned, const std::string &);
+};
+
+} // namespace DataFile
+} // namespace Msp
+
+#endif