On Thu, Oct 1, 2015 at 6:35 AM, Oleg K <[email protected]> wrote: > i wasn't even thinking about a change, may be better Exception message, > that is all. >
I agree the error message is kind of confusing. Can you file a bug for that? > > or event better: immediate exception InvalidStateError just when i called > set_exception to prevent me doing something that "should not be done" > That's not really possible. And I assure you that what you did is highly unusual (it's not a mistake many people would make :-). > basically that "double error" StopIteration + InvalidStateError just > confused me. > because it gave me no trace to the real source of the problem, the earlier > call of "set_exception" which went good (at first glance). > > i guess that StopIteration just comes from the end of coroutine, because > we iterate over it? > that is "natural exception" and it could not exit it properly and created > another. > Yeah, the StopIteration is just the end of the coroutine. It is implicated because the failing set_result() call occurred in the except clause (in _step()) that handled that StopIteration. > > On Thursday, October 1, 2015 at 12:26:21 AM UTC-4, Guido van Rossum wrote: >> >> There are many excellent reasons why the mechanism I've described won't >> change. >> >> I guess you could do this: >> >> try: >> raise RuntimeError >> finally: >> <cleanup> >> >> But personally I would just write >> >> <cleanup> >> raise RuntimeError >> >> If <cleanup> is a lot of code put it in a helper function. >> >> --Guido van Rossum (python.org/~guido) >> > -- --Guido van Rossum (python.org/~guido)
