[Haskell-cafe] Absolutely confused with error/exception handling

Brandon Allbery allbery.b at gmail.com
Fri Dec 16 02:28:14 UTC 2016

On Thu, Dec 15, 2016 at 8:42 PM, Saurabh Nanda <saurabhnanda at gmail.com>

> * What exactly is done by the "error" function? How does one "trap" those
> errors and react to it? Can "catch" trap those errors? What is "e" in the
> case of errors raised by "error"?

`error` specifically raises a UserError exception, with a user-specified
payload (message). `catch` can catch them as such.

> * How is "error" different from "throw" and "throwIO" (in the
> Control.Exception package, I believe)

`throw` (for pure code / asynchronous) and `throwIO` (for code in IO) can
throw any exception. No guarantees are made as to when the exception thrown
by `throw`

brandon s allbery kf8nh                               sine nomine associates
allbery.b at gmail.com                                  ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20161215/ab65bb4a/attachment.html>

More information about the Haskell-Cafe mailing list