view 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 source

/* 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!");
    }
}