Op 30-04-15 om 09:43 schreef Cecil Westerhof: > 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.
I think this is the wrong question. The right question i: What is the most logical/consistent thing to do, within your project? There are at least two ways to look at this. 1) Getting too large an index is very similar to getting an index with an empty line and can be treated as such. In that case you might prefer to return an empty line. 2) Getting too large an index indicates a problem that can't be handled here. In that case you should let the exception propagate to where it can be handled. 2a) You view the IndexError as a good diagnostic, nothing more to do. 2b) You view the IndexError as an error specific to the implementation and want an exception independent of your implementation: catch the IndexError and raise one you specified yourself. -- Antoon Pardon -- https://mail.python.org/mailman/listinfo/python-list