[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