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) || 1 29 30 _STLP_BEGIN_NAMESPACE 31 32 class _STLP_CLASS_DECLSPEC logic_error : public __Named_exception { 33 public: 34 logic_error(const string& __s) : __Named_exception(__s) {} 35 # ifndef _STLP_USE_NO_IOSTREAMS 36 ~logic_error() _STLP_NOTHROW_INHERENTLY; 37 # endif 38 }; 39 40 class _STLP_CLASS_DECLSPEC runtime_error : public __Named_exception { 41 public: 42 runtime_error(const string& __s) : __Named_exception(__s) {} 43 # ifndef _STLP_USE_NO_IOSTREAMS 44 ~runtime_error() _STLP_NOTHROW_INHERENTLY; 45 # endif 46 }; 47 48 class _STLP_CLASS_DECLSPEC domain_error : public logic_error { 49 public: 50 domain_error(const string& __arg) : logic_error(__arg) {} 51 # ifndef _STLP_USE_NO_IOSTREAMS 52 ~domain_error() _STLP_NOTHROW_INHERENTLY; 53 # endif 54 }; 55 56 class _STLP_CLASS_DECLSPEC invalid_argument : public logic_error { 57 public: 58 invalid_argument(const string& __arg) : logic_error(__arg) {} 59 # ifndef _STLP_USE_NO_IOSTREAMS 60 ~invalid_argument() _STLP_NOTHROW_INHERENTLY; 61 # endif 62 }; 63 64 class _STLP_CLASS_DECLSPEC length_error : public logic_error { 65 public: 66 length_error(const string& __arg) : logic_error(__arg) {} 67 # ifndef _STLP_USE_NO_IOSTREAMS 68 ~length_error() _STLP_NOTHROW_INHERENTLY; 69 # endif 70 }; 71 72 class _STLP_CLASS_DECLSPEC out_of_range : public logic_error { 73 public: 74 out_of_range(const string& __arg) : logic_error(__arg) {} 75 # ifndef _STLP_USE_NO_IOSTREAMS 76 ~out_of_range() _STLP_NOTHROW_INHERENTLY; 77 # endif 78 }; 79 80 class _STLP_CLASS_DECLSPEC range_error : public runtime_error { 81 public: 82 range_error(const string& __arg) : runtime_error(__arg) {} 83 # ifndef _STLP_USE_NO_IOSTREAMS 84 ~range_error() _STLP_NOTHROW_INHERENTLY; 85 # endif 86 }; 87 88 class _STLP_CLASS_DECLSPEC overflow_error : public runtime_error { 89 public: 90 overflow_error(const string& __arg) : runtime_error(__arg) {} 91 # ifndef _STLP_USE_NO_IOSTREAMS 92 ~overflow_error() _STLP_NOTHROW_INHERENTLY; 93 # endif 94 }; 95 96 class _STLP_CLASS_DECLSPEC underflow_error : public runtime_error { 97 public: 98 underflow_error(const string& __arg) : runtime_error(__arg) {} 99 # ifndef _STLP_USE_NO_IOSTREAMS 100 ~underflow_error() _STLP_NOTHROW_INHERENTLY; 101 # endif 102 }; 103 104 _STLP_END_NAMESPACE 105 106 # endif 107 #endif 108 109 #endif /* _STLP_INTERNAL_STDEXCEPT */ 110