00001 #ifndef BIT_EXCEPTIONS_HH 00002 #define BIT_EXCEPTIONS_HH 00003 00004 #include <stdexcept> 00005 00006 namespace bit { 00007 00009 class invalid_argument : public std::invalid_argument 00010 { 00011 public: 00012 explicit invalid_argument(const std::string& __arg) 00013 : std::invalid_argument(__arg) { } 00014 }; 00015 00017 class out_of_range : public std::out_of_range 00018 { 00019 public: 00020 explicit out_of_range(const std::string& __arg) 00021 : std::out_of_range(__arg) { } 00022 }; 00023 00025 class invalid_call : public std::logic_error 00026 { 00027 public: 00028 explicit invalid_call(const std::string& __arg) 00029 : logic_error(__arg) { } 00030 }; 00031 00033 class io_error : public std::runtime_error 00034 { 00035 public: 00036 explicit io_error(const std::string& __arg) 00037 : runtime_error(__arg) { } 00038 }; 00039 00040 }; 00041 00042 #endif /* BIT_EXCEPTIONS_HH */