aneumann:
> Hello,
> 
> I think it'd be nice if the compiler could warn me if there are any  
> exceptions which I'm not catching, similar to checked exceptions in  
> Java. Does anyone know of a possibility to do that in Haskell?
> 
> Adrian

You could provide exception-safe wrappers for the functions you use,
that catch any exception and flatten it to an Either type (or something
similar). Then GHC's usual coverage checking will enforce the handling.


    import qualified System.IO
    import Control.Exception

    maybeReadFile :: FilePath -> IO (Maybe String)
    maybeReadFile f = handle (\_ -> return Nothing)
                             (Just `fmap` System.IO.readFile f)

    {-
    *A> maybeReadFile "/tmp/DOESNOTEXIST"
    Nothing
    -}

    main = do
        mf <- maybeReadFile "DOESNOTEXIST"
        case mf of
             Nothing -> return ()
             Just s  -> print s


The ability to control exceptions seems like something we should have more 
solutions for.

-- Don
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to