[Haskell] Re: Exceptions

John Goerzen jgoerzen at complete.org
Tue Nov 23 15:11:25 EST 2004


On 2004-11-23, Johannes Waldmann <waldmann at imn.htwk-leipzig.de> wrote:
> in the following example, the handler won't catch the exception
> because of lazy evaluation. therefore, it's a different story
> than with exceptions in ML, Python, whatever strict language.
>
> main = do
>      xs <- return [ 1, 2, error "throw" ]
>          `catch` \ any -> do
>              putStrLn "caught"
> 	    return [ 4, 5, 6 ]
>      print xs

That didn't quite compile as-is; I assume you ment:

main = do
     xs <- return [ 1, 2, error "throw" ]
         `catch` \ any -> do
             putStrLn "caught"
             return [ 4, 5, 6 ]
     print xs

When run, I get: Fail: throw

In any case, in the more general case, I don't see a problem with that.
I get an exception when I try to use something.  That's fine.  In an
imperative program that solves the same problem the same way, you'd see
the exception at the same point.




More information about the Haskell mailing list