On Oct 12, 2013, at 4:30 PM, Ethan Furman <ethan at stoneleaf.us> wrote: >> >> When you ask someone to describe what >> "try: f() except SomeException: pass" does, >> they will say that it ignores the exception. > > And they would be right in that case. > > >> FWIW, I presented this to 2500+ people in the keynote >> at the 2013 U.S. Pycon and have received favorable feedback. > > Were you only displaying the same short form above? Yes. The specific example given was: with ignore(OSError): os.remove(somefile) The intended use for the context manager is for the common cases like these: try: os.mkdir(dirname) except OSError: pass def discard(self, key): """If the keyed message exists, remove it.""" try: self.remove(key) except KeyError: pass Most cases of try/except/pass that I see span only one or two lines in the try-block. > Or did you show some with many lines of code inside the with block? If you didn't, is that because it's a bad idea? > > Compare: > > try: > f() > g() > h() > except SomeException: > pass > Yes, that is usually a bad idea. We don't recommend code like that with try/except. Using a context manager in this case wouldn't make it better. > For the record, I am no longer opposed to this context manager, only to its name. It just like the old days where there were 100+ emails suggesting other names for enumerate() before agreeing that it had been right to begin with. Raymond -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20131012/c69b4750/attachment-0001.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4