1 /* 2 * Copyright (c) 1996,1997 3 * Silicon Graphics Computer Systems, Inc. 4 * 5 * Copyright (c) 1999 6 * Boris Fomitchev 7 * 8 * This material is provided "as is", with absolutely no warranty expressed 9 * or implied. Any use is at your own risk. 10 * 11 * Permission to use or copy this software for any purpose is hereby granted 12 * without fee, provided the above notices are retained on all copies. 13 * Permission to modify the code and to distribute modified code is granted, 14 * provided the above notices are retained, and a notice that the code was 15 * modified is included with the above copyright notice. 16 * 17 */ 18 19 #ifndef _STLP_INTERNAL_STDEXCEPT 20 #define _STLP_INTERNAL_STDEXCEPT 21 22 #ifndef _STLP_INTERNAL_STDEXCEPT_BASE 23 # include <stl/_stdexcept_base.h> 24 #endif 25 26 #if !defined (_STLP_USE_NATIVE_STDEXCEPT) || defined (_STLP_USE_OWN_NAMESPACE) 27 28 # if defined(_STLP_USE_EXCEPTIONS) || \ 29 !(defined(_MIPS_SIM) && defined(_ABIO32) && (_MIPS_SIM == _ABIO32)) 30 31 _STLP_BEGIN_NAMESPACE 32 33 class _STLP_CLASS_DECLSPEC logic_error : public __Named_exception { 34 public: logic_error(const string & __s)35 logic_error(const string& __s) : __Named_exception(__s) {} 36 # ifndef _STLP_USE_NO_IOSTREAMS 37 ~logic_error() _STLP_NOTHROW_INHERENTLY; 38 # endif 39 }; 40 41 class _STLP_CLASS_DECLSPEC runtime_error : public __Named_exception { 42 public: runtime_error(const string & __s)43 runtime_error(const string& __s) : __Named_exception(__s) {} 44 # ifndef _STLP_USE_NO_IOSTREAMS 45 ~runtime_error() _STLP_NOTHROW_INHERENTLY; 46 # endif 47 }; 48 49 class _STLP_CLASS_DECLSPEC domain_error : public logic_error { 50 public: domain_error(const string & __arg)51 domain_error(const string& __arg) : logic_error(__arg) {} 52 # ifndef _STLP_USE_NO_IOSTREAMS 53 ~domain_error() _STLP_NOTHROW_INHERENTLY; 54 # endif 55 }; 56 57 class _STLP_CLASS_DECLSPEC invalid_argument : public logic_error { 58 public: invalid_argument(const string & __arg)59 invalid_argument(const string& __arg) : logic_error(__arg) {} 60 # ifndef _STLP_USE_NO_IOSTREAMS 61 ~invalid_argument() _STLP_NOTHROW_INHERENTLY; 62 # endif 63 }; 64 65 class _STLP_CLASS_DECLSPEC length_error : public logic_error { 66 public: length_error(const string & __arg)67 length_error(const string& __arg) : logic_error(__arg) {} 68 # ifndef _STLP_USE_NO_IOSTREAMS 69 ~length_error() _STLP_NOTHROW_INHERENTLY; 70 # endif 71 }; 72 73 class _STLP_CLASS_DECLSPEC out_of_range : public logic_error { 74 public: out_of_range(const string & __arg)75 out_of_range(const string& __arg) : logic_error(__arg) {} 76 # ifndef _STLP_USE_NO_IOSTREAMS 77 ~out_of_range() _STLP_NOTHROW_INHERENTLY; 78 # endif 79 }; 80 81 class _STLP_CLASS_DECLSPEC range_error : public runtime_error { 82 public: range_error(const string & __arg)83 range_error(const string& __arg) : runtime_error(__arg) {} 84 # ifndef _STLP_USE_NO_IOSTREAMS 85 ~range_error() _STLP_NOTHROW_INHERENTLY; 86 # endif 87 }; 88 89 class _STLP_CLASS_DECLSPEC overflow_error : public runtime_error { 90 public: overflow_error(const string & __arg)91 overflow_error(const string& __arg) : runtime_error(__arg) {} 92 # ifndef _STLP_USE_NO_IOSTREAMS 93 ~overflow_error() _STLP_NOTHROW_INHERENTLY; 94 # endif 95 }; 96 97 class _STLP_CLASS_DECLSPEC underflow_error : public runtime_error { 98 public: underflow_error(const string & __arg)99 underflow_error(const string& __arg) : runtime_error(__arg) {} 100 # ifndef _STLP_USE_NO_IOSTREAMS 101 ~underflow_error() _STLP_NOTHROW_INHERENTLY; 102 # endif 103 }; 104 105 _STLP_END_NAMESPACE 106 107 # endif 108 #endif 109 110 #endif /* _STLP_INTERNAL_STDEXCEPT */ 111