* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef __EXCEPTION_H
-#define __EXCEPTION_H
+
+#pragma once
#include "pch.h"
+#include "xml.h"
class Exception
{
Exception ( const std::string& message );
Exception ( const char* format,
...);
- std::string Message;
+ const std::string& operator *() { return _e; }
+
protected:
Exception ();
- void SetMessage ( const char* message,
- va_list args );
+ void SetMessage ( const char* message, ... );
+ void SetMessageV ( const char* message, va_list args );
+
+private:
+ std::string _e;
+};
+
+
+class MissingArgumentException : public Exception
+{
+public:
+ MissingArgumentException ( const std::string& argument );
};
std::string Filename;
};
-class InvalidBuildFileException : public Exception
-{
-public:
- InvalidBuildFileException ( const std::string& location,
- const char* message,
- ...);
- void SetLocationMessage ( const std::string& location,
- const char* message,
- va_list args );
-protected:
- InvalidBuildFileException ();
-};
-
-
-class XMLSyntaxErrorException : public InvalidBuildFileException
+class InvalidDateException : public Exception
{
public:
- XMLSyntaxErrorException ( const std::string& location,
- const char* message,
- ... );
+ InvalidDateException ( const std::string& filename );
+ std::string Filename;
};
-
-class RequiredAttributeNotFoundException : public InvalidBuildFileException
+class RequiredAttributeNotFoundException : public XMLInvalidBuildFileException
{
public:
RequiredAttributeNotFoundException ( const std::string& location,
};
-class InvalidAttributeValueException : public InvalidBuildFileException
+class InvalidAttributeValueException : public XMLInvalidBuildFileException
{
public:
InvalidAttributeValueException ( const std::string& location,
UnknownBackendException ( const std::string& name );
};
-class UnknownModuleTypeException : public InvalidBuildFileException
+class UnknownModuleTypeException : public XMLInvalidBuildFileException
{
public:
UnknownModuleTypeException ( const std::string& location,
std::string BuildTool;
std::string Version;
};
-
-#endif /* __EXCEPTION_H */