module lib.exception;

/**
  Raised when a function receives an argument that has the right type.
 */
class ValueError : Error {
    this(string msg) {
        super("ValueError:  " ~ msg);
    }
}


/**
  Raised when a mapping (dictionary) key is not found in the set of existing
  keys.
 */
class KeyError : Error {
    this(string msg) {
        super("KeyError:  " ~ msg);
    }
}


/**
  Raised when a sequence subscript is out of range.
 */
class IndexError : Error {
    this(string msg) {
        super("IndexError:  " ~ msg);
    }
}