On 16 October 2013 05:17, Alexander Belopolsky < alexander.belopol...@gmail.com> wrote:
> On Tue, Oct 15, 2013 at 12:45 PM, Ethan Furman <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) 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
_______________________________________________ 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