using split for a string : error

Chris Angelico rosuav at gmail.com
Thu Jan 24 07:02:02 EST 2013


On Thu, Jan 24, 2013 at 10:58 PM, Tobias M. <tm at tobix.eu> wrote:
> Chris Angelico wrote:
>>
>> I'd not consider the performance, but the correctness. If you're
>> expecting them to be integers, just cast them, and specifically
>> _don't_ catch ValueError. Any non-integer value will then noisily
>> abort the script. (It may be worth checking for blank first, though,
>> depending on the data origin.)
>
> Well, when I said you should catch the ValueError I didn't imply you should
> ignore the error and supress any error messages. Of course this depents on
> the use case. Maybe you want to raise another exception with a more user
> friendly error message or you might want to skip the line and just print a
> warning. :)
>
> What I'm trying to say: When I give a script/program to a user who is not a
> python programmer I don't want him to see an error message like "ValueError:
> invalid literal for int() with base 10: 'abc'" as this would help him in no
> way.

Sure. Definitely. But for a proglet where the programmer IS the user
(which I think is one of Python's best use-cases), that exception
landing on the console is better than having to think ahead of time
about what might go wrong.

ChrisA



More information about the Python-list mailing list