00001 #ifndef CLASSLIB_IO_ERROR_H
00002 # define CLASSLIB_IO_ERROR_H
00003
00004
00005
00006 # include "classlib/utils/Error.h"
00007
00008 namespace lat {
00009
00010
00011
00012
00013
00014
00015
00017 class IOError : public Error
00018 {
00019 public:
00020 IOError (const char *context, int code = 0);
00021 IOError (const char *context, Error *chain);
00022 IOError (Error *chain);
00023
00024 virtual std::string explainSelf (void) const;
00025 virtual Error * clone (void) const;
00026 virtual void rethrow (void);
00027
00028 protected:
00029 virtual std::string doexplain (const char *type) const;
00030
00031 private:
00032 std::string m_context;
00033 };
00034
00035
00036
00037
00038 }
00039 #endif // CLASSLIB_IO_ERROR_H