// stdexcept standard header #pragma once #ifndef _STDEXCEPT_ #define _STDEXCEPT_ #include #include #pragma pack(push,8) #pragma warning(push,3) _STD_BEGIN // CLASS logic_error class logic_error : public exception { // base of all logic-error exceptions public: explicit logic_error(const string& _Message) : _Str(_Message) { // construct from message string } virtual ~logic_error() { // destroy the object } virtual const char *what() const _THROW0() { // return pointer to message string return (_Str.c_str()); } #if !_HAS_EXCEPTIONS protected: virtual void _Doraise() const { // perform class-specific exception handling _RAISE(*this); } #endif /* _HAS_EXCEPTIONS */ private: string _Str; // the stored message string }; // CLASS domain_error class domain_error : public logic_error { // base of all domain-error exceptions public: explicit domain_error(const string& _Message) : logic_error(_Message) { // construct from message string } virtual ~domain_error() { // destroy the object } #if !_HAS_EXCEPTIONS protected: virtual void _Doraise() const { // perform class-specific exception handling _RAISE(*this); } #endif /* _HAS_EXCEPTIONS */ }; // CLASS invalid_argument class invalid_argument : public logic_error { // base of all invalid-argument exceptions public: explicit invalid_argument(const string& _Message) : logic_error(_Message) { // construct from message string } virtual ~invalid_argument() { // destroy the object } #if !_HAS_EXCEPTIONS protected: virtual void _Doraise() const { // perform class-specific exception handling _RAISE(*this); } #endif /* _HAS_EXCEPTIONS */ }; // CLASS length_error class length_error : public logic_error { // base of all length-error exceptions public: explicit length_error(const string& _Message) : logic_error(_Message) { // construct from message string } virtual ~length_error() { // destroy the object } #if !_HAS_EXCEPTIONS protected: virtual void _Doraise() const { // perform class-specific exception handling _RAISE(*this); } #endif /* _HAS_EXCEPTIONS */ }; // CLASS out_of_range class out_of_range : public logic_error { // base of all out-of-range exceptions public: explicit out_of_range(const string& _Message) : logic_error(_Message) { // construct from message string } virtual ~out_of_range() { // destroy the object } #if !_HAS_EXCEPTIONS protected: virtual void _Doraise() const { // perform class-specific exception handling _RAISE(*this); } #endif /* _HAS_EXCEPTIONS */ }; // CLASS runtime_error class runtime_error : public exception { // base of all runtime-error exceptions public: explicit runtime_error(const string& _Message) : _Str(_Message) { // construct from message string } virtual ~runtime_error() { // destroy the object } virtual const char *what() const _THROW0() { // return pointer to message string return (_Str.c_str()); } #if !_HAS_EXCEPTIONS protected: virtual void _Doraise() const { // perform class-specific exception handling _RAISE(*this); } #endif /* _HAS_EXCEPTIONS */ private: string _Str; // the stored message string }; // CLASS overflow_error class overflow_error : public runtime_error { // base of all overflow-error exceptions public: explicit overflow_error(const string& _Message) : runtime_error(_Message) { // construct from message string } virtual ~overflow_error() { // destroy the object } #if !_HAS_EXCEPTIONS protected: virtual void _Doraise() const { // perform class-specific exception handling _RAISE(*this); } #endif /* _HAS_EXCEPTIONS */ }; // CLASS underflow_error class underflow_error : public runtime_error { // base of all underflow-error exceptions public: explicit underflow_error(const string& _Message) : runtime_error(_Message) { // construct from message string } virtual ~underflow_error() { // destroy the object } #if !_HAS_EXCEPTIONS protected: virtual void _Doraise() const { // perform class-specific exception handling _RAISE(*this); } #endif /* _HAS_EXCEPTIONS */ }; // CLASS range_error class range_error : public runtime_error { // base of all range-error exceptions public: explicit range_error(const string& _Message) : runtime_error(_Message) { // construct from message string } virtual ~range_error() { // destroy the object } #if !_HAS_EXCEPTIONS protected: virtual void _Doraise() const { // perform class-specific exception handling _RAISE(*this); } #endif /* _HAS_EXCEPTIONS */ }; _STD_END #pragma warning(pop) #pragma pack(pop) #endif /* _STDEXCEPT_ */ /* * Copyright (c) 1992-2001 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V3.10:0009 */