[Tutor] try except block for multiple statements

John Fouhy john at fouhy.net
Tue Dec 2 02:54:26 CET 2008


On 02/12/2008, Bryan Fodness <bryan.fodness at gmail.com> wrote:
> I would like to use a try except to see if a value exists.  But, when I use
> the following, if a does not exist it exits.  I understand why this does
> this, but is there a way to get b,c, and d if a does not exist without using
> a try except for every statement?
>
> try:
>     fo.write("a = %s\n" %plan.a)
>     fo.write("b = %s\n" %plan.b)
>     fo.write("c = %s\n" %plan.c)
>     fo.write("d = %s\n" %plan.d)
> except AttributeError:
>     pass

AFAIK, no -- but you could always use a loop.

attrs = ['a', 'b', 'c', 'd']
for attr in attrs:
  try:
    fo.write('A = %s\n' % getattr(plan, attr))
  except AttributeError:
    pass

-- 
John.


More information about the Tutor mailing list