PROPOSAL: Add displayException to Exception typeclass

Andreas Abel abela at chalmers.se
Tue Nov 11 06:40:53 UTC 2014


+1 for providing an easy way to install an exception handler that uses 
the display function.

You could consider to just provide

   displayExceptionHandler :: SomeException -> IO ()

with a hint in the documentation to install it via

   setUncaughtExceptionHandler displayExceptionHandler

That might be slightly more modular, as one could add some pre or 
post-processing to displayExceptionHandler.

Cheers,
Andreas

On 11.11.2014 03:38, Simon Hengel wrote:
>>> 2.  Add a function that can be invoked to change the default handler.
>>
>> like
>>
>> http://hackage.haskell.org/package/base-4.7.0.1/docs/GHC-Conc-Sync.html#v:setUncaughtExceptionHandler
>
> I think getting the exception handler right is non-trivial, e.g.
>
>   - stdout has to be flushed, ignoring any exceptions while doing so
>   - output has to go to stderr, not stdout
>   - program has to terminate with the correct exit code (at least if it's
>     the main thread)
>   - I would also assume that ExitCode exceptions need special handling,
>     even though I don't see any code for that in the default handler [1],
>     so maybe this is already taken care of before the handler is invoked
>
> So I think it makes sense to provide a primitive along the lines of
>
>      useDisplayExceptionHandler :: IO ()
>
> which does "the right thing" (I'm not very opinionated about the name).
>
> One more thing I noticed is that the exception handler set with
> setUncaughtExceptionHandler is used for both the main thread and other
> threads.  I'm undecided whether this would be desirable or not for
> useDisplayExceptionHandler.  Thoughts?
>
> Cheers,
> Simon
>
> [1] http://hackage.haskell.org/package/base-4.7.0.1/docs/src/GHC-Conc-Sync.html#uncaughtExceptionHandler
>


-- 
Andreas Abel  <><      Du bist der geliebte Mensch.

Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden

andreas.abel at gu.se
http://www2.tcs.ifi.lmu.de/~abel/


More information about the Libraries mailing list