Repository : ssh://darcs.haskell.org//srv/darcs/packages/base

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/c78232da6d163fae9725a03128648f1015efd541

>---------------------------------------------------------------

commit c78232da6d163fae9725a03128648f1015efd541
Author: Simon Peyton Jones <[email protected]>
Date:   Fri Feb 17 14:02:33 2012 +0000

    Use throwIO rather than throw where possible
    This makes exceptions more predictable.

>---------------------------------------------------------------

 Control/OldException.hs |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/Control/OldException.hs b/Control/OldException.hs
index 0b4d751..865ebfa 100644
--- a/Control/OldException.hs
+++ b/Control/OldException.hs
@@ -286,7 +286,7 @@ catchJust
         -> IO a
 catchJust p a handler = catch a handler'
   where handler' e = case p e of 
-                        Nothing -> throw e
+                        Nothing -> throwIO e
                         Just b  -> handler b
 
 -- | A version of 'catch' with the arguments swapped around; useful in
@@ -312,7 +312,7 @@ handleJust p =  flip (catchJust p)
 
 mapException :: (Exception -> Exception) -> a -> a
 mapException f v = unsafePerformIO (catch (evaluate v)
-                                          (\x -> throw (f x)))
+                                          (\x -> throwIO (f x)))
 
 -----------------------------------------------------------------------------
 -- 'try' and variations.
@@ -344,7 +344,7 @@ tryJust p a = do
   case r of
         Right v -> return (Right v)
         Left  e -> case p e of
-                        Nothing -> throw e
+                        Nothing -> throwIO e
                         Just b  -> return (Left b)
 
 -----------------------------------------------------------------------------
@@ -389,8 +389,8 @@ catchDyn m k = New.catch m handler
                            (DynException dyn) ->
                                 case fromDynamic dyn of
                                     Just exception  -> k exception
-                                    Nothing -> throw ex
-                           _ -> throw ex
+                                    Nothing -> throwIO ex
+                           _ -> throwIO ex
 #endif
 
 -----------------------------------------------------------------------------
@@ -463,7 +463,7 @@ bracket before after thing =
     a <- before 
     r <- catch 
            (restore (thing a))
-           (\e -> do { _ <- after a; throw e })
+           (\e -> do { _ <- after a; throwIO e })
     _ <- after a
     return r
 #endif
@@ -479,7 +479,7 @@ a `finally` sequel =
   mask $ \restore -> do
     r <- catch 
              (restore a)
-             (\e -> do { _ <- sequel; throw e })
+             (\e -> do { _ <- sequel; throwIO e })
     _ <- sequel
     return r
 
@@ -500,7 +500,7 @@ bracketOnError before after thing =
     a <- before 
     catch 
         (restore (thing a))
-        (\e -> do { _ <- after a; throw e })
+        (\e -> do { _ <- after a; throwIO e })
 
 -- 
-----------------------------------------------------------------------------
 -- Asynchronous exceptions



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to