mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
242 lines
4.7 KiB
242 lines
4.7 KiB
// stdexcept standard header
|
|
#pragma once
|
|
#ifndef _STDEXCEPT_
|
|
#define _STDEXCEPT_
|
|
#include <exception>
|
|
#include <xstring>
|
|
|
|
#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 */
|