[Haskell-beginners] Better error messages

Peter Hall peter.hall at memorphic.com
Thu Dec 29 23:00:05 CET 2011


Thanks,
I was trying this, but it turns out my indentation was wrong; the
'then' and 'else' need to be indented under the 'if', or else it gets
confused about the do block.

Also thanks for the other solutions. I'm looking up cmdargs now.

Peter


On Thu, Dec 29, 2011 at 8:42 PM, Daniel Fischer
<daniel.is.fischer at googlemail.com> wrote:
> On Thursday 29 December 2011, 21:25:31, Peter Hall wrote:
>> If I have something like this
>>
>> main = do
>>     args <- getArgs
>>     let file = args !! 0
>>     -- etc...
>>
>>
>> And I run it without any arguments, I get an error message like this:
>> "Prelude.(!!): index too large".
>>
>> What's the best way to handle an error like this to give a better
>> message back to the user?
>
> main = do
>    args <- getArgs
>    case args of
>      [] -> complain
>      _ -> happiness
>
> or
>
>    args <- getArgs
>    if null args
>      then complain
>      else happiness



More information about the Beginners mailing list