00001 #ifndef FCOLLEXCEPTIONS_H 00002 #define FCOLLEXCEPTIONS_H 00003 00004 #include "zipios-config.h" 00005 00006 #include <stdexcept> 00007 #include <string> 00008 00009 namespace zipios { 00010 00011 using std::string ; 00012 using std::exception ; 00013 00016 class IOException : public exception { 00017 public: 00018 IOException() throw () ; 00019 explicit IOException( const string &msg ) throw () ; 00020 IOException( const IOException &src ) throw () ; 00021 IOException &operator= ( const IOException &src ) throw () ; 00022 00023 virtual const char *what() const throw () ; 00024 virtual ~IOException() throw () ; 00025 private: 00026 string _what ; 00027 }; 00028 00031 class FCollException : public exception { 00032 public: 00033 FCollException() throw () ; 00034 explicit FCollException( const string &msg ) throw () ; 00035 FCollException( const FCollException &src ) throw () ; 00036 FCollException &operator= ( const FCollException &src ) throw () ; 00037 00038 virtual const char *what() const throw () ; 00039 virtual ~FCollException() throw () ; 00040 private: 00041 string _what ; 00042 }; 00043 00047 class InvalidStateException : public exception { 00048 public: 00049 InvalidStateException() throw () ; 00050 explicit InvalidStateException( const string &msg ) throw () ; 00051 InvalidStateException( const InvalidStateException &src ) throw () ; 00052 InvalidStateException &operator= ( const InvalidStateException &src ) throw () ; 00053 00054 virtual const char *what() const throw () ; 00055 virtual ~InvalidStateException() throw () ; 00056 private: 00057 string _what ; 00058 }; 00059 00061 class Exception : public exception { 00062 public: 00063 Exception() throw () ; 00064 explicit Exception( const string &msg ) throw () ; 00065 Exception( const Exception &src ) throw () ; 00066 Exception &operator= ( const Exception &src ) throw () ; 00067 00068 virtual const char *what() const throw () ; 00069 virtual ~Exception() throw () ; 00070 private: 00071 string _what ; 00072 }; 00073 00074 00075 } // namespace 00076 #endif 00077 00083 /* 00084 Zipios++ - a small C++ library that provides easy access to .zip files. 00085 Copyright (C) 2000 Thomas Søndergaard 00086 00087 This library is free software; you can redistribute it and/or 00088 modify it under the terms of the GNU Lesser General Public 00089 License as published by the Free Software Foundation; either 00090 version 2 of the License, or (at your option) any later version. 00091 00092 This library is distributed in the hope that it will be useful, 00093 but WITHOUT ANY WARRANTY; without even the implied warranty of 00094 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00095 Lesser General Public License for more details. 00096 00097 You should have received a copy of the GNU Lesser General Public 00098 License along with this library; if not, write to the Free Software 00099 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00100 */