Re Interest check in some delicious syntactic sugar for "except:pass"

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Wed Mar 3 11:16:55 EST 2010


On Wed, 03 Mar 2010 06:47:28 -0500, Oren Elrad wrote:

> With that said, let me at least offer a token defense of my position. By
> way of motivation, I wrote that email after copying/pasting the
> following a few times around a project until I wrote it into def
> SilentlyDelete() and its cousin SilentlyRmdir()
> 
> """ code involving somefile """
> try:
> ........os.remove(somefile)
> except:
> .......pass     # The bloody search indexer has got the file and I can't
> delete it. Nothing to be done.

Or:

(1) you forgot to import the os module
(2) the os module (or os.remove) was rebound or monkey-patched to 
something unexpected
(3) you have a bug in your code and somefile=23 (say) instead of the 
filename you're expecting
(4) the user hit the interrupt key just at that instance
(5) somefile doesn't exist
(6) somefile does exist, but you don't have write-permission for it
(7) the disk is mounted read-only
(8) you don't have a search indexer and something else has gone wrong

Hiding all those different errors is, quite frankly, shoddy work.

#1-3 certainly shouldn't be hidden, as they are bugs in your program. #4 
shouldn't be hidden, ignoring the user's interrupt command is bad, and 
rude if it is deliberate. #5 probably shouldn't be hidden either, as it 
most likely indicates a program bug, but some rare applications may be 
okay with ignoring it. And #6-8 should be told to the user, so they can 
fix the problem.



-- 
Steven



More information about the Python-list mailing list