base Json::Exception
diff --git a/include/json/value.h b/include/json/value.h
index b752fb8..1cd6291 100644
--- a/include/json/value.h
+++ b/include/json/value.h
@@ -11,6 +11,7 @@
 #endif // if !defined(JSON_IS_AMALGAMATION)
 #include <string>
 #include <vector>
+#include <exception>
 
 #ifndef JSON_USE_CPPTL_SMALLMAP
 #include <map>
@@ -32,6 +33,18 @@
  */
 namespace Json {
 
+/** Base class for all exceptions we throw.
+ */
+class Exception : public std::exception {
+public:
+  Exception(std::string const& msg);
+  virtual ~Exception() throw();
+  virtual char const* what() const throw();
+protected:
+  std::string const& msg_;
+  void* future_use_;
+};
+
 /** \brief Type of the value held by a Value object.
  */
 enum ValueType {