diff --git a/metrology/exceptions.py b/metrology/exceptions.py
index <HASH>..<HASH> 100644
--- a/metrology/exceptions.py
+++ b/metrology/exceptions.py
@@ -2,6 +2,10 @@ class MetrologyException(Exception):
     pass
 
 
+class RegistryException(MetrologyException):
+    pass
+
+
 class ArgumentException(MetrologyException):
     pass
 
diff --git a/metrology/registry.py b/metrology/registry.py
index <HASH>..<HASH> 100644
--- a/metrology/registry.py
+++ b/metrology/registry.py
@@ -2,6 +2,7 @@ import inspect
 
 from threading import RLock
 
+from metrology.exceptions import RegistryException
 from metrology.instruments import Counter, Meter, Timer, UtilizationTimer, HistogramUniform
 
 
@@ -47,7 +48,7 @@ class Registry(object):
     def add(self, name, metric):
         with self.lock:
             if name in self.metrics:
-                raise RuntimeError("{0} already present in the registry.".format(name))
+                raise RegistryException("{0} already present in the registry.".format(name))
             else:
                 self.metrics[name] = metric
 
@@ -56,7 +57,7 @@ class Registry(object):
             metric = self.metrics.get(name)
             if metric is not None:
                 if not isinstance(metric, klass):
-                    raise RuntimeError("{0} is not of type {1}.".format(name, klass))
+                    raise RegistryException("{0} is not of type {1}.".format(name, klass))
             else:
                 if inspect.isclass(klass):
                     metric = klass()
raise a RegistryException rahter than a RuntimeError