
#ifndef EXCEPTIONS_H
#define EXCEPTIONS_H


class logic_error : public exception
{
  public:
    logic_error( char *msg )
      : mesg( msg )
    { }

    const char *what( ) const
      { return mesg; }

  private:
    const char *mesg;
};

class domain_error : public logic_error
{
  public:
    domain_error( char *msg )
      : logic_error( msg )
    { }
};

class out_of_range : public logic_error
{
  public:
    out_of_range( char *msg )
      : logic_error( msg )
    { }
};

class invalid_argument : public logic_error
{
  public:
    invalid_argument( char *msg )
      : logic_error( msg )
    { }
};

#endif

