On Thu, Apr 2, 2026, at 5:13 AM, Tim Düsterhus wrote:

>> continue means "stop this iteration of a control structure and go to 
>> the next one."  But in this case, there is no next one.  switch makes 
>> it an alias for break, for whatever reason lost to history, but given 
>> that it now throws a warning that seems to now be considered a mistake, 
>> so we don't see a reason to propagate that mistake.
>
> I think Rowan explained that well in his reply.
>
>> If you have an alternate suggestion for how to achieve this 
>> functionality, now is the time to propose it.
>
> As implied by my email, I believe that throwing exceptions should be the 
> job of the `throw` keyword, not the job of the `return` keyword. 
> Otherwise users are going to wonder what makes `return new 
> SomeException();` different from `throw new SomeException()` in that 
> case.
>
> Best regards
> Tim Düsterhus

We've updated the RFC to address the break question (new section), the continue 
question (which is now a secondary vote), and expanded the reasoning for the 
`return $e` decision, including reference to the original Python PEP which 
explains the need for a distinction.

--Larry Garfield

Reply via email to