diff mde/file/mergetag/exception.d @ 81:d8fccaa45d5f

Moved file IO code from mde/mergetag to mde/file[/mergetag] and changed how some errors are caught.
author Diggory Hardy <diggory.hardy@gmail.com>
date Fri, 29 Aug 2008 11:59:43 +0100
parents mde/mergetag/exception.d@611f7b9063c6
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mde/file/mergetag/exception.d	Fri Aug 29 11:59:43 2008 +0100
@@ -0,0 +1,91 @@
+/* LICENSE BLOCK
+Part of mde: a Modular D game-oriented Engine
+Copyright © 2007-2008 Diggory Hardy
+
+This program is free software: you can redistribute it and/or modify it under the terms
+of the GNU General Public License as published by the Free Software Foundation, either
+version 2 of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+without even the implied warranty of 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, see <http://www.gnu.org/licenses/>. */
+
+/*******************************************
+ * Contains exception classes for MergeTag.
+ *
+ * Publically imports mde.exception.
+ ******************************************/
+module mde.file.mergetag.exception;
+
+public import mde.exception;
+
+/// Base MergeTag exception class.
+class MTException : mdeException {
+    char[] getSymbol () {
+        return super.getSymbol ~ ".mergetag";
+    }
+    
+    this (char[] msg) {
+        super(msg);
+    }
+    this () {   // Only called when an unexpected exception/error occurs
+        super ("Unknown exception");
+    }
+}
+
+/** Thrown on file IO errors. */
+class MTFileIOException : MTException {
+    this () {
+        super ("File IO exception");
+    }
+    this (char[] msg) {
+        super (msg);
+    }
+}
+
+/** Thrown on unknown format errors; when reading or writing and the filetype cannot be guessed. */
+class MTFileFormatException : MTException {
+    this () {
+        super ("File format exception");
+    }
+}
+
+/** Thrown on syntax errors when reading; bad tags or unexpected EOF. */
+class MTSyntaxException : MTException {
+    this () {
+        super ("Syntax exception");
+    }
+}
+
+/** Thrown by addTag (in classes implementing IDataSection) when a data parsing error occurs
+* (really just to make whoever called addTag to log a warning saying where the error occured). */
+class MTaddTagParseException : MTException {
+    this () {
+        super ("Parse exception within addTag");
+    }
+}
+
+/+
+/// Thrown by TypeView.parse on errors.
+class MTBadTypeStringException : MTException {
+    this () {}
+}
++/
+
+/// Thrown by *Writer.write.
+class MTNoDataSetException : MTException {
+    this () {
+        super ("No dataset");
+    }
+}
+
+/// Thrown when attempting to use an unimplemented part of the package
+/// Really, just until MTB stuff is implemented
+class MTNotImplementedException : MTException {
+    this () {
+        super ("Functionality not implemented!");
+    }
+}