|
|
|
# Imprecise Exceptions
|
|
|
|
|
|
|
|
|
|
|
|
See [ExtensionDescriptionHowto](extension-description-howto) for information on how to write these extension descriptions. Please add any new extensions to the list of [HaskellExtensions](haskell-extensions).
|
|
|
|
|
|
|
|
## Brief Explanation
|
|
|
|
|
|
|
|
|
|
|
|
Exceptions may be thrown by pure code and caught in the `IO` monad.
|
|
|
|
|
|
|
|
## References
|
|
|
|
|
|
|
|
- [ A semantics for imprecise exceptions](http://research.microsoft.com/Users/simonpj/Papers/imprecise-exn.htm), Simon Peyton Jones, Alastair Reid, Tony Hoare, Simon Marlow and Fergus Henderson. PLDI 1999.
|
|
|
|
- [ Control.Exception](http://www.haskell.org/ghc/dist/current/docs/libraries/base/Control-Exception.html)
|
|
|
|
- [ExtensibleExceptions](extensible-exceptions)
|
|
|
|
|
|
|
|
## Pros
|
|
|
|
|
|
|
|
- more robust programs
|
|
|
|
|
|
|
|
## Cons
|
|
|
|
|
|
|
|
- complicates denotational semantics a little |