On 10/15/2013 12:59 PM, Tim Delaney wrote:
On 16 October 2013 05:17, Alexander Belopolsky <alexander.belopol...@gmail.com 
<mailto:alexander.belopol...@gmail.com>>
wrote:

    On Tue, Oct 15, 2013 at 12:45 PM, Ethan Furman <et...@stoneleaf.us 
<mailto:et...@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)


As long as we're having fun ;)

    trap_os = suppress(OSError)
    dead_files = ('missing.txt', 'other_missing.txt', 'actually_here.txt')

    for file in dead_files:
        with trap_os:
            os.unlink(missing.txt)

    for exc in trap_os.suppressed_exceptions:
        do_something(exc)

--
~Ethan~
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to