![](https://secure.gravatar.com/avatar/d67ab5d94c2fed8ab6b727b62dc1b213.jpg?s=120&d=mm&r=g)
July 31, 2020
9:08 p.m.
On Sat, Aug 1, 2020 at 1:43 PM Steven D'Aprano <steve@pearwood.info> wrote:
Some years ago, someone (I think it was Nick Coghlan?) proposed a standard solution for this issue, a context manager + decorator function that guarded against a specific exception. Nothing much came of it, but I did experiment with the idea, and got something which you could use like this:
with exception_guard(StopIteration): first = next(iter(mydict.items()))
My understanding of this is that 'first' is unassigned if StopIteration happens.
or like this:
safenext = exception_guard(StopIteration)(next) first = safenext(iter(mydict.items()))
My understanding of this is that I am confused. What does safenext return? ChrisA