Any discussion of except expressions should reference PEP 463 and respond to the arguments there.
https://www.python.org/dev/peps/pep-0463/ On Sun, Jan 27, 2019, 3:52 AM Alex Shafer via Python-ideas < python-ideas@python.org wrote: > Hello, > > I'd like to discuss an idea I had to shorten the syntax for the common > case of having a try/except/finally/else block where all of the following > conditions are met: > > * There is only one except block, no finally or else > * The exception is not captured in the except block, i.e. `except > KeyError:` not `except KeyError as e:` > * The contents of the except block is only a single expression > * Perhaps, the expression starts with a control word such as pass, break, > continue, return, raise. As it happens, everything useful I can think to do > with this right now currently uses these. Unclear to me if this should be a > requirement. > > The syntax I envisioned would be something like the following: > > try on ValueError pass: > some_list.remove('value') > > I'm not at all attached to the `on` token specifically, but I think > something is necessary there. > > Other examples: > > def func(): > try on KeyError, ValueError return False: > dict_of_lists['key'].remove('value') > > key = 'foo' > try on KeyError raise MyApplicationError(f'{key} not found'): > a_dict[key] > > > > for i in range(100): > try on TypeError continue: > a_list[i] += 1 > etc() > > I realize this could be accomplished with context managers, but that seems > like overkill to simply throw away the exception, and would increase the > overall required code length. > > Thanks for your input! > Alex > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/