URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [language/] [cxx/] [ustl/] [current/] [include/] [ustl/] [ustdxept.h] - Rev 786
Compare with Previous | Blame | View Log
// This file is part of the uSTL library, an STL implementation. // // Copyright (c) 2005-2009 by Mike Sharov <msharov@users.sourceforge.net> // This file is free software, distributed under the MIT License. #ifndef USTDXEPT_H_46F7AE967738B588038F95E41158D7FF #define USTDXEPT_H_46F7AE967738B588038F95E41158D7FF #include "uexception.h" #include "ustring.h" namespace ustl { enum { xfmt_ErrorMessage = 2, xfmt_LogicError = xfmt_ErrorMessage, xfmt_RuntimeError = xfmt_ErrorMessage }; /// \class logic_error ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Logic errors represent problems in the internal logic of the program. /// class error_message : public exception { public: explicit error_message (const char* arg) throw(); virtual ~error_message (void) throw(); inline virtual const char* what (void) const throw() { return (m_Arg.c_str()); } inline virtual const char* name (void) const throw() { return ("error"); } virtual void info (string& msgbuf, const char* fmt = NULL) const throw(); virtual void read (istream& is); virtual void write (ostream& os) const; virtual size_t stream_size (void) const; protected: string m_Arg; }; /// \class logic_error ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Logic errors represent problems in the internal logic of the program. /// class logic_error : public error_message { public: inline explicit logic_error (const char* arg) throw() : error_message (arg) {} inline virtual const char* name (void) const throw() { return ("logic error"); } }; /// \class domain_error ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Reports domain errors ("domain" is in the mathematical sense) /// class domain_error : public logic_error { public: inline explicit domain_error (const char* arg) throw() : logic_error (arg) {} inline virtual const char* name (void) const throw() { return ("domain error"); } }; /// \class invalid_argument ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Reports an invalid argument to a function. /// class invalid_argument : public logic_error { public: inline explicit invalid_argument (const char* arg) throw() : logic_error (arg) {} inline virtual const char* name (void) const throw() { return ("invalid argument"); } }; /// \class length_error ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Reports when an object exceeds its allowed size. /// class length_error : public logic_error { public: inline explicit length_error (const char* arg) throw() : logic_error (arg) {} inline virtual const char* name (void) const throw() { return ("length error"); } }; /// \class out_of_range ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Reports arguments with values out of allowed range. /// class out_of_range : public logic_error { public: inline explicit out_of_range (const char* arg) throw() : logic_error (arg) {} inline virtual const char* name (void) const throw() { return ("out of range"); } }; /// \class runtime_error ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Reports errors that are dependent on the data being processed. /// class runtime_error : public error_message { public: inline explicit runtime_error (const char* arg) throw() : error_message (arg) {} inline virtual const char* name (void) const throw() { return ("runtime error"); } }; /// \class range_error ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Reports data that does not fall within the permitted range. /// class range_error : public runtime_error { public: inline explicit range_error (const char* arg) throw() : runtime_error (arg) {} inline virtual const char* name (void) const throw() { return ("range error"); } }; /// \class overflow_error ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Reports arithmetic overflow. /// class overflow_error : public runtime_error { public: inline explicit overflow_error (const char* arg) throw() : runtime_error (arg) {} inline virtual const char* name (void) const throw() { return ("overflow error"); } }; /// \class underflow_error ustdxept.h ustl.h /// \ingroup Exceptions /// /// \brief Reports arithmetic underflow. /// class underflow_error : public runtime_error { public: inline explicit underflow_error (const char* arg) throw() : runtime_error (arg) {} inline virtual const char* name (void) const throw() { return ("underflow error"); } }; } // namespace ustl #endif