00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 #ifndef STXXL_EXCEPTIONS_H_
00014 #define STXXL_EXCEPTIONS_H_
00015 
00016 #include <iostream>
00017 #include <string>
00018 #include <stdexcept>
00019 
00020 #include <stxxl/bits/namespace.h>
00021 
00022 
00023 __STXXL_BEGIN_NAMESPACE
00024 
00025 class io_error : public std::ios_base::failure
00026 {
00027 public:
00028     io_error() throw () : std::ios_base::failure("") { }
00029     io_error(const std::string & msg_) throw () :
00030         std::ios_base::failure(msg_)
00031     { }
00032 };
00033 
00034 class resource_error : public std::runtime_error
00035 {
00036 public:
00037     resource_error() throw () : std::runtime_error("") { }
00038     resource_error(const std::string & msg_) throw () :
00039         std::runtime_error(msg_)
00040     { }
00041 };
00042 
00043 class bad_ext_alloc : public std::runtime_error
00044 {
00045 public:
00046     bad_ext_alloc() throw () : std::runtime_error("") { }
00047     bad_ext_alloc(const std::string & msg_) throw () :
00048         std::runtime_error(msg_)
00049     { }
00050 };
00051 
00052 __STXXL_END_NAMESPACE
00053 
00054 #endif // !STXXL_EXCEPTIONS_H_