diff --git a/opaleye-trans.cabal b/opaleye-trans.cabal
--- a/opaleye-trans.cabal
+++ b/opaleye-trans.cabal
@@ -1,5 +1,5 @@
 name:                opaleye-trans
-version:             0.4.1
+version:             0.4.2
 synopsis:            A monad transformer for Opaleye
 description:         A monad transformer for Opaleye
 homepage:            https://github.com/WraithM/opaleye-trans
@@ -33,6 +33,7 @@
                , postgresql-simple   >= 0.4 && < 0.6
                , product-profunctors >= 0.6 && < 0.9
                , transformers        >= 0.3 && < 0.6
+               , exceptions          >= 0.6 && < 0.9
 
 
 executable opaleye-rosetree
diff --git a/src/Opaleye/Trans.hs b/src/Opaleye/Trans.hs
--- a/src/Opaleye/Trans.hs
+++ b/src/Opaleye/Trans.hs
@@ -44,6 +44,7 @@
 import           Control.Monad.Reader            (MonadReader, ReaderT (..),
                                                   ask)
 import           Control.Monad.Trans             (MonadTrans (..))
+import           Control.Monad.Catch             (MonadCatch, MonadThrow)
 
 import           Data.Maybe                      (listToMaybe)
 import           Data.Profunctor.Product.Default (Default)
@@ -58,7 +59,9 @@
 
 -- | The 'Opaleye' monad transformer
 newtype OpaleyeT m a = OpaleyeT { unOpaleyeT :: ReaderT Connection m a }
-    deriving (Functor, Applicative, Monad, MonadTrans, MonadIO, MonadReader Connection)
+    deriving ( Functor, Applicative, Monad, MonadTrans, MonadIO
+             , MonadReader Connection, MonadCatch, MonadThrow
+             )
 
 
 -- | Given a 'Connection', run an 'OpaleyeT'
diff --git a/src/Opaleye/Trans/Exception.hs b/src/Opaleye/Trans/Exception.hs
--- a/src/Opaleye/Trans/Exception.hs
+++ b/src/Opaleye/Trans/Exception.hs
@@ -58,6 +58,7 @@
 import           Control.Monad.IO.Class          (MonadIO, liftIO)
 import           Control.Monad.Reader            (MonadReader (..))
 import           Control.Monad.Trans             (MonadTrans (..))
+import           Control.Monad.Catch             (MonadCatch, MonadThrow)
 
 import           Data.Profunctor.Product.Default (Default)
 
@@ -72,7 +73,9 @@
 
 
 newtype OpaleyeT e m a = OpaleyeT { unOpaleyeT :: ExceptT e (T.OpaleyeT m) a }
-    deriving (Functor, Applicative, Monad, MonadIO, MonadReader Connection, MonadError e)
+    deriving ( Functor, Applicative, Monad, MonadIO, MonadReader Connection
+             , MonadError e, MonadCatch, MonadThrow
+             )
 
 
 instance MonadTrans (OpaleyeT e) where
