(original) (raw)
On 16 October 2013 05:17, Alexander Belopolsky <alexander.belopolsky@gmail.com> wrote:
On Tue, Oct 15, 2013 at 12:45 PM, Ethan Furman <ethan@stoneleaf.us> wrote:.. and why is this better than
> with trap(OSError) as cm:
> os.unlink('missing.txt')
> if cm.exc:
> do_something()
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