On Sat, Nov 7, 2009 at 9:54 PM, Henning Thielemann <lemming@henning-thielemann.de> wrote:

On Sat, 7 Nov 2009, Jose Iborra wrote:

Sorry for the confusion, I never meant that c-m-e can show stack traces for asynchronous exceptions. It can not.

My post was not related in any way to asynchronous exceptions. It's just the everlasting issue of the distinction of programming errors and exceptions.


I'm not sure if I managed to dispel your doubts, if not perhaps you could make your points more clear.

I'm trying that for years now, repeatedly in this mailing list and on the Wiki:
 http://www.haskell.org/haskellwiki/Error
 http://www.haskell.org/haskellwiki/Exception
 I don't know how I can make it still clearer. It's just like concurrency vs. parallelism - somehow related, but it is important to distinguish them.

And yet if I use library ABC, which I expected to be error-free, and it in fact has a programming error, is this an error or an exception from my point of view? Based on the definitions you posted, I believe the correct answer is "error." However, I'd much rather have a way to recover from that kind of error if it's logical.

For example, let's say that I'm writing a web browser in Haskell (it could happen). If there's an error in the HTTP library which causes it to die on certain types of headers, I'd much rather be able to tell the user sorry and let them continue browsing than to up and die with a "Prelude.head" message in their console.

Michael