[Haskell-cafe] A program which never crashes (even when a function calls "error")

Henning Thielemann lemming at henning-thielemann.de
Tue Aug 1 05:50:28 EDT 2006

On Tue, 1 Aug 2006, Stephane Bortzmeyer wrote:

> [It is a philosophical question, not a practical programming problem.]
> I'm used, in imperative programming languages with exceptions (like
> Python) to call any function without fear of stopping the program
> because I can always catch the exceptions with things like (Python):
> while not over:
>    try: 
>       code which may raise an exception...
>    except Exception e:
>       do something clever
> How to do it in Haskell? How can I call functions like Prelude.head
> while being sure my program won't stop, even if I call head on an
> empty list (thus calling "error")?

Catching errors is quite a hack. If the head of an empty list is
requested, then this is considered a programming error, not a user error.
Thus the best is to stop the program. Don't mix programming errors with
problems caused by users (that is, exceptions).

More information about the Haskell-Cafe mailing list