Commit c60ff20b authored by basvandijk's avatar basvandijk
Browse files

Replaced some throws to throwIOs where the type is IO

parent 9e176dc8
......@@ -426,7 +426,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
......@@ -452,7 +452,7 @@ handleJust p = flip (catchJust p)
mapException :: (Exception e1, Exception e2) => (e1 -> e2) -> a -> a
mapException f v = unsafePerformIO (catch (evaluate v)
(\x -> throw (f x)))
(\x -> throwIO (f x)))
-----------------------------------------------------------------------------
-- 'try' and variations.
......@@ -482,14 +482,14 @@ 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)
-- | Like 'finally', but only performs the final action if there was an
-- exception raised by the computation.
onException :: IO a -> IO b -> IO a
onException io what = io `catch` \e -> do _ <- what
throw (e :: SomeException)
throwIO (e :: SomeException)
-----------------------------------------------------------------------------
-- Some Useful Functions
......
......@@ -254,7 +254,7 @@ catchException :: Exception e => IO a -> (e -> IO a) -> IO a
catchException (IO io) handler = IO $ catch# io handler'
where handler' e = case fromException e of
Just e' -> unIO (handler e')
Nothing -> raise# e
Nothing -> raiseIO# e
catchAny :: IO a -> (forall e . Exception e => e -> IO a) -> IO a
catchAny (IO io) handler = IO $ catch# io handler'
......@@ -344,7 +344,7 @@ blocked = fmap (/= Unmasked) getMaskingState
onException :: IO a -> IO b -> IO a
onException io what = io `catchException` \e -> do _ <- what
throw (e :: SomeException)
throwIO (e :: SomeException)
-- | Executes an IO computation with asynchronous
-- exceptions /masked/. That is, any thread which attempts to raise
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment