Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #89628

Re: Let exception fire or return None

Date 2015-04-30 14:30 +0200
From Antoon Pardon <antoon.pardon@rece.vub.ac.be>
Subject Re: Let exception fire or return None
References <87bni6awol.fsf@Equus.decebal.nl>
Newsgroups comp.lang.python
Message-ID <mailman.128.1430397102.3680.python-list@python.org> (permalink)

Show all headers | View raw


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

Back to comp.lang.python | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Let exception fire or return None Cecil Westerhof <Cecil@decebal.nl> - 2015-04-30 09:43 +0200
  Re: Let exception fire or return None Dave Angel <davea@davea.name> - 2015-04-30 04:18 -0400
    Re: Let exception fire or return None Cecil Westerhof <Cecil@decebal.nl> - 2015-04-30 11:13 +0200
  Re: Let exception fire or return None Peter Otten <__peter__@web.de> - 2015-04-30 11:30 +0200
    Re: Let exception fire or return None Cecil Westerhof <Cecil@decebal.nl> - 2015-04-30 13:26 +0200
      Re: Let exception fire or return None Peter Otten <__peter__@web.de> - 2015-04-30 14:28 +0200
        Re: Let exception fire or return None Cecil Westerhof <Cecil@decebal.nl> - 2015-04-30 16:53 +0200
      Re: Let exception fire or return None Cecil Westerhof <Cecil@decebal.nl> - 2015-04-30 14:22 +0200
  Re: Let exception fire or return None Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-04-30 14:05 +0200
  Re: Let exception fire or return None Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2015-04-30 14:30 +0200

csiph-web