[Haskell-cafe] Re: [Haskell] ANNOUNCE: control-monad-exception 0.5 with monadic call traces

Henning Thielemann lemming at henning-thielemann.de
Thu Nov 5 17:24:59 EST 2009

On Tue, 3 Nov 2009, Jose Iborra wrote:

> On 03/11/2009, at 14:24, Henning Thielemann wrote:
>> Sure, this is a nice functionality. But isn't it about debugging, not
>> exception handling? Internal Server Error means to me, the server has a
>> bug, thus we want to know, how to reproduce it, thus the stack trace.
>> For handling expected irregularites, what exceptions are, you would not
>> need that, right?
> This is about error handling and reporting. Catching an exception does 
> not tell you where the exception comes from, in the same way that a 
> "head of empty list" error does not point at the source of the error. 
> You need a stack trace to know that. So the output above, generated by a 
> regular exception handler

Thomas Hartman tphyahoo at gmail.com Tue Nov 3 08:59:50 EST 2009

> When using happstack, I find it really annoying to get a Prelude.head: 
> null list error (or similar) in my web browser window because somewhere, 
> some library used something unsafe -- and of course, since this is 
> haskell, no stack trace.

> if c-m-e can offer benefits around this, I would be very interested in 
> adopting it.

That's what I meant with my post: Programming errors (like "head []") are 
not handled by control-monad-exception. As far as I understand, 
control-monad-exception makes _exceptions_ explicit in the type 
signatures, not programming errors. Why and how would you make possible 
programming errors explicit in the type? But for exceptions (e.g. "file 
could not be found") a detailed stack trace is not of much use. It seems 
again to me, that mixing of (programming) errors and exceptions is going 
on, and I assumed that the purpose of control-monad-exception is to 
separate them in a better way.

More information about the Haskell-Cafe mailing list