try/except KeyError vs "if name in ..."
Ramchandra Apte
maniandram01 at gmail.com
Sun Oct 7 00:17:33 EDT 2012
On Sunday, 7 October 2012 01:12:56 UTC+5:30, Terry Reedy wrote:
> On 10/6/2012 7:36 AM, Dave Angel wrote:
>
>
>
> > The distinction in performance between the success and failure modes of
>
> > the try/catch isn't nearly as large as one of the other responses might
>
> > lead you to believe. For example, a for loop generally terminates with
>
> > a raise (of StopIteration exception), and that doesn't convince us to
>
> > replace it with a while loop.
>
>
>
> For statement generally loop many times, up to millions of times,
>
> without an exception being raised, whereas while statements test the
>
> condition each time around the loop. So the rule 'if failure is rare
>
> (less than 10-20%) use try', applies here. For if/them versus
>
> try/except, I don't worry too much about it.
>
>
>
> --
>
> Terry Jan Reedy
I use try and except when I need to raise exceptions e.g.:
try:
value = vm.variables[name]
except KeyError:
raise NameError("variable name not defined in VM's variables")
More information about the Python-list
mailing list