Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!us.feeder.erje.net!news2.arglkargh.de!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!newsfeed.pionier.net.pl!feed.xsnews.nl!border03.ams.xsnews.nl!feeder04.ams.xsnews.nl!abp001.ams.xsnews.nl!frontend-F09-12.ams.news.kpn.nl From: Cecil Westerhof Newsgroups: comp.lang.python Subject: Re: Let exception fire or return None Organization: Decebal Computing References: <87bni6awol.fsf@Equus.decebal.nl> X-Face: "(y8cC@tg_12{">GF'UXTW]FHI2wMiZNrnf'1EFQ&O#$m:f#O7+7}kR,v+Pti8=Vi/Z"g^?b"E X-Homepage: http://www.decebal.nl/ Date: Thu, 30 Apr 2015 11:13:05 +0200 Message-ID: <87pp6mvv1a.fsf@Equus.decebal.nl> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:JABDRvrXi2zlcQamNAQi+t55KXk= MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Lines: 31 NNTP-Posting-Host: 81.207.62.244 X-Trace: 1430385292 news.kpn.nl 18624 81.207.62.244@kpn/81.207.62.244:36738 Xref: csiph.com comp.lang.python:89616 Op Thursday 30 Apr 2015 10:18 CEST schreef Dave Angel: > On 04/30/2015 03:43 AM, Cecil Westerhof wrote: >> I have a function to fetch a message from a file: >> def get_indexed_message(message_filename, index): >> """ >> Get index message from a file, where 0 gets the first message >> """ >> >> return open(expanduser(message_filename), >> 'r').readlines()[index].rstrip() >> >> What is more the Python way: let the exception fire like this code >> when index is to big, or catching it and returning None? >> >> I suppose working zero based is OK. >> > > Fire an exception. > > One advantage is that the exception will pinpoint exactly which line > of the function had a problem. That is what I did. The only ‘problem’ is that they need to catch the error if they do not know the number of messages in the file. But they can use get_nr_of_messages for that. -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof