00001 /* ///////////////////////////////////////////////////////////////////////// 00002 * File: stlsoft/error/project_exception.hpp 00003 * 00004 * Purpose: Basic exception classes. 00005 * 00006 * Created: 19th January 2002 00007 * Updated: 10th August 2009 00008 * 00009 * Home: http://stlsoft.org/ 00010 * 00011 * Copyright (c) 2002-2009, Matthew Wilson and Synesis Software 00012 * All rights reserved. 00013 * 00014 * Redistribution and use in source and binary forms, with or without 00015 * modification, are permitted provided that the following conditions are 00016 * met: 00017 * 00018 * - Redistributions of source code must retain the above copyright notice, 00019 * this list of conditions and the following disclaimer. 00020 * - Redistributions in binary form must reproduce the above copyright 00021 * notice, this list of conditions and the following disclaimer in the 00022 * documentation and/or other materials provided with the distribution. 00023 * - Neither the name(s) of Matthew Wilson and Synesis Software nor the 00024 * names of any contributors may be used to endorse or promote products 00025 * derived from this software without specific prior written permission. 00026 * 00027 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 00028 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 00029 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00030 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 00031 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00032 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00033 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00034 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00035 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00036 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00037 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00038 * 00039 * ////////////////////////////////////////////////////////////////////// */ 00040 00041 00049 #ifndef STLSOFT_INCL_STLSOFT_ERROR_HPP_PROJECT_EXCEPTION 00050 #define STLSOFT_INCL_STLSOFT_ERROR_HPP_PROJECT_EXCEPTION 00051 00052 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION 00053 # define STLSOFT_VER_STLSOFT_ERROR_HPP_PROJECT_EXCEPTION_MAJOR 5 00054 # define STLSOFT_VER_STLSOFT_ERROR_HPP_PROJECT_EXCEPTION_MINOR 0 00055 # define STLSOFT_VER_STLSOFT_ERROR_HPP_PROJECT_EXCEPTION_REVISION 1 00056 # define STLSOFT_VER_STLSOFT_ERROR_HPP_PROJECT_EXCEPTION_EDIT 50 00057 #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */ 00058 00059 /* ///////////////////////////////////////////////////////////////////////// 00060 * Compatibility 00061 */ 00062 00063 /* 00064 [DocumentationStatus:Ready] 00065 */ 00066 00067 /* ///////////////////////////////////////////////////////////////////////// 00068 * Includes 00069 */ 00070 00071 #ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT 00072 # include <stlsoft/stlsoft.h> 00073 #endif /* !STLSOFT_INCL_STLSOFT_H_STLSOFT */ 00074 00075 #ifndef STLSOFT_INCL_EXCEPTION 00076 # define STLSOFT_INCL_EXCEPTION 00077 # include <exception> 00078 #endif /* !STLSOFT_INCL_EXCEPTION */ 00079 00080 /* ///////////////////////////////////////////////////////////////////////// 00081 * Namespace 00082 */ 00083 00084 #ifndef _STLSOFT_NO_NAMESPACE 00085 namespace stlsoft 00086 { 00087 #endif /* _STLSOFT_NO_NAMESPACE */ 00088 00089 /* ///////////////////////////////////////////////////////////////////////// 00090 * Classes 00091 */ 00092 00099 class project_exception 00100 #if defined(STLSOFT_COMPILER_IS_DMC) 00101 : public std::exception 00102 #else /* ? compiler */ 00103 : public stlsoft_ns_qual_std(exception) 00104 #endif /* compiler */ 00105 { 00108 public: 00110 typedef project_exception class_type; 00112 #if defined(STLSOFT_COMPILER_IS_DMC) 00113 typedef std::exception parent_class_type; 00114 #else /* ? compiler */ 00115 typedef stlsoft_ns_qual_std(exception) parent_class_type; 00116 #endif /* compiler */ 00118 00121 public: 00123 project_exception() 00124 {} 00126 00129 public: 00131 virtual char const* what() const stlsoft_throw_0() = 0; 00133 }; 00134 00135 /* ////////////////////////////////////////////////////////////////////// */ 00136 00137 #ifndef _STLSOFT_NO_NAMESPACE 00138 } // namespace stlsoft 00139 #endif /* _STLSOFT_NO_NAMESPACE */ 00140 00141 /* ////////////////////////////////////////////////////////////////////// */ 00142 00143 #endif /* !STLSOFT_INCL_STLSOFT_ERROR_HPP_PROJECT_EXCEPTION */ 00144 00145 /* ///////////////////////////// end of file //////////////////////////// */