[Zope-dev] Greedy except clauses

Jeremy Hylton jeremy@digicool.com
Fri, 9 Feb 2001 20:26:51 -0500 (EST)


>>>>> "AB" == Anthony Baxter <anthony@interlink.com.au> writes:

  AB> Now, it's obvious that not all of these are bad - some are
  AB> probably fine - but there's also many that are _not_ good. The
  AB> one in MailHost.py does eat exceptions. I'm sure there are
  AB> others.

I am probably a bit idiosyncratic, but I prefer to avoid bare excepts
at all costs.  I often use "except Exception:", otherwise I add a
comment that specifically notes that I intend to catch everything.
Otherwise, you can't tell the difference between intentional and
accidental use.

  AB> I've done a quickie hack script that runs over the source and
  AB> produces a list of matches to lines in the file, and links to a
  AB> lightly patched viewcvs so that you can jump straight to the
  AB> lines. It seems like it would be reasonably easy to make this a
  AB> bit more sophisticated to include things like the nesting 'def'
  AB> and 'class' method.

  AB> This, to me, seems like a pretty nice community type task -
  AB> people could take one of them off the list of unchecked ones,
  AB> and have a look through the code... no?

It would also be interesting to see how many try/except blocks are
including more code than they should.  The larger the block, the more
likely that a line of code raises an error that the author didn't
consider; these errors can mean that real bugs get caught be accident
and ignore.  When the block is small -- preferably just a line or two
-- there is litle chance for error.  Of course, there are very good
reasons to have longer except blocks.

Jeremy