
On Wed, Feb 5, 2014 at 2:08 AM, Roman Cheplyaka
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 ()