Add onException
[ghc-base.git] / Control / Exception.hs
index cd71313..d3a88e8 100644 (file)
@@ -76,6 +76,7 @@ module Control.Exception (
         try,       -- :: IO a -> IO (Either Exception a)
         tryJust,   -- :: (Exception -> Maybe b) -> a    -> IO (Either b a)
         ignoreExceptions,
+        onException,
 
         -- ** The @evaluate@ function
         evaluate,  -- :: a -> IO a
@@ -348,6 +349,10 @@ tryJust p a = do
 ignoreExceptions :: IO () -> IO ()
 ignoreExceptions io = io `catchAny` \_ -> return ()
 
+onException :: IO a -> IO () -> IO a
+onException io what = io `catch` \e -> do what
+                                          throw (e :: SomeException)
+
 -----------------------------------------------------------------------------
 -- Some Useful Functions