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


Groups > comp.lang.python > #95278

Re: Is this a correct way to generate an exception when getting a wrong parameter

From Peter Otten <__peter__@web.de>
Subject Re: Is this a correct way to generate an exception when getting a wrong parameter
Date 2015-08-12 11:33 +0200
Organization None
References <87h9o46flw.fsf@Equus.decebal.nl>
Newsgroups comp.lang.python
Message-ID <mailman.105.1439371995.3627.python-list@python.org> (permalink)

Show all headers | View raw


Cecil Westerhof wrote:

> I have:
> ========================================================================
> accepted_params     = {
>     'pcpu',
>     'rss',
>     'size',
>     'time',
>     'vsize',
> }
> ========================================================================
> 
> Later I use:
> ========================================================================
> if (to_check != 'all') and not(to_check in accepted_params):
>     raise Exception('Used illegal parameter: {0}.\n'
>                     'Accepted ones: {1}'
>                     .format(to_check, sorted(accepted_params)))
> ========================================================================
> 
> When using 'all' I want to do the work for all accepted parameters.
> ;-)

Doesn't that make it an "accepted parameter"? Why not add it to the set?

> Is this a correct way to do this, or is there a better way?

I suppose you do this early in a function? Then at least choose a more 
specific exception (e. g. ValueError).

If this is about commandline arguments -- argparse can handle such 
restrictions:

$ cat demo.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--check", choices=["pcpu", "rss"], default="all")
print(parser.parse_args().check)
$ python3 demo.py
all
$ python3 demo.py --check rss
rss
$ python3 demo.py --check ssr
usage: demo.py [-h] [--check {pcpu,rss}]
demo.py: error: argument --check: invalid choice: 'ssr' (choose from 'pcpu', 
'rss')

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


Thread

Is this a correct way to generate an exception when getting a wrong parameter Cecil Westerhof <Cecil@decebal.nl> - 2015-08-12 11:06 +0200
  Re: Is this a correct way to generate an exception when getting a wrong parameter Chris Angelico <rosuav@gmail.com> - 2015-08-12 19:25 +1000
  Re: Is this a correct way to generate an exception when getting a wrong parameter Peter Otten <__peter__@web.de> - 2015-08-12 11:33 +0200
  Re: Is this a correct way to generate an exception when getting a wrong parameter Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-08-12 11:43 +0100
    Re: Is this a correct way to generate an exception when getting a wrong parameter Bernd Waterkamp <Bernd-Waterkamp@web.de> - 2015-08-12 18:42 +0200

csiph-web