On 2004-11-23, Johannes Waldmann [EMAIL PROTECTED] 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.
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell