[Python-Dev] cpython: Rename contextlib.ignored() to contextlib.ignore().
Tim Delaney
timothy.c.delaney at gmail.com
Tue Oct 15 21:59:55 CEST 2013
On 16 October 2013 05:17, Alexander Belopolsky <
alexander.belopolsky at gmail.com> wrote:
> On Tue, Oct 15, 2013 at 12:45 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
> > with trap(OSError) as cm:
> > os.unlink('missing.txt')
> > if cm.exc:
> > do_something()
>
> .. and why is this better than
>
> try:
> os.unlink('missing.txt')
> except OSError as exc:
> do_something()
It would allow you to perform a series of operations then process the any
exceptions all together e.g.
with trap(OSError) as cm1:
os.unlink('missing.txt')
with trap(OSError) as cm2:
os.unlink('other_missing.txt')
with trap(OSError) as cm3:
os.unlink('another_missing.txt')
for cm in (cm1, cm2, cm3):
if cm.exc:
do_something(cm.exc)
An equivalent implementation would be:
exceptions = []
try:
os.unlink('missing.txt')
except OSError as exc:
exceptions.append(exc)
try:
os.unlink('missing.txt')
except OSError as exc:
exceptions.append(exc)
try:
os.unlink('missing.txt')
except OSError as exc:
exceptions.append(exc)
for exc in exceptions:
if exc:
do_something(exc)
Tim Delaney
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20131016/71b95214/attachment.html>
More information about the Python-Dev
mailing list