Proposal: add Control.Exception.SomeAsyncException

Evan Laforge qdunkan at gmail.com
Wed Feb 5 18:41:54 UTC 2014


On Wed, Feb 5, 2014 at 2:08 AM, Roman Cheplyaka <roma at ro-che.info> wrote:
> I just discovered that SomeAsyncException under the exact same name and
> with the same intention has been added to base-4.7 (GHC 7.8). How cool
> is that?

In the python world this was called the time machine effect.  Looks
like the ghc devs have their own time machine!

I recently fixed a bug with catching SomeException instead of only
synchronous exceptions.  I'd imagine that catching async exceptions is
very often a bug, since it catches ^C and ThreadKilled and the like.
If I did lots of work with exceptions I'd probably go as far as to
define an alternate 'catch' that rethrows async exceptions.  But I
think even with AsyncException as its own class you can't say
"everything except", so it still requires an explicit rethrow, yes?
E.g.:

            case Exception.fromException exc of
                Just (exc :: Exception.AsyncException) -> Exception.throwIO exc
                Nothing -> return ()


More information about the Libraries mailing list