summaryrefslogtreecommitdiff
path: root/Utility/Exception.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Utility/Exception.hs')
-rw-r--r--Utility/Exception.hs59
1 files changed, 0 insertions, 59 deletions
diff --git a/Utility/Exception.hs b/Utility/Exception.hs
deleted file mode 100644
index 1fecf65d..00000000
--- a/Utility/Exception.hs
+++ /dev/null
@@ -1,59 +0,0 @@
-{- Simple IO exception handling (and some more)
- -
- - Copyright 2011-2012 Joey Hess <joey@kitenet.net>
- -
- - License: BSD-2-clause
- -}
-
-{-# LANGUAGE ScopedTypeVariables #-}
-
-module Utility.Exception where
-
-import Control.Exception
-import qualified Control.Exception as E
-import Control.Applicative
-import Control.Monad
-import System.IO.Error (isDoesNotExistError)
-import Utility.Data
-
-{- Catches IO errors and returns a Bool -}
-catchBoolIO :: IO Bool -> IO Bool
-catchBoolIO = catchDefaultIO False
-
-{- Catches IO errors and returns a Maybe -}
-catchMaybeIO :: IO a -> IO (Maybe a)
-catchMaybeIO a = catchDefaultIO Nothing $ Just <$> a
-
-{- Catches IO errors and returns a default value. -}
-catchDefaultIO :: a -> IO a -> IO a
-catchDefaultIO def a = catchIO a (const $ return def)
-
-{- Catches IO errors and returns the error message. -}
-catchMsgIO :: IO a -> IO (Either String a)
-catchMsgIO a = either (Left . show) Right <$> tryIO a
-
-{- catch specialized for IO errors only -}
-catchIO :: IO a -> (IOException -> IO a) -> IO a
-catchIO = E.catch
-
-{- try specialized for IO errors only -}
-tryIO :: IO a -> IO (Either IOException a)
-tryIO = try
-
-{- Catches all exceptions except for async exceptions.
- - This is often better to use than catching them all, so that
- - ThreadKilled and UserInterrupt get through.
- -}
-catchNonAsync :: IO a -> (SomeException -> IO a) -> IO a
-catchNonAsync a onerr = a `catches`
- [ Handler (\ (e :: AsyncException) -> throw e)
- , Handler (\ (e :: SomeException) -> onerr e)
- ]
-
-tryNonAsync :: IO a -> IO (Either SomeException a)
-tryNonAsync a = (Right <$> a) `catchNonAsync` (return . Left)
-
-{- Catches only DoesNotExist exceptions, and lets all others through. -}
-tryWhenExists :: IO a -> IO (Maybe a)
-tryWhenExists a = eitherToMaybe <$>
- tryJust (guard . isDoesNotExistError) a