What c.l.py's opinions about Soft Exception?
Kay Schluehr
kay.schluehr at gmx.net
Sun Mar 9 01:24:36 EST 2008
On 9 Mrz., 06:30, Steven D'Aprano <st... at REMOVE-THIS-
cybersource.com.au> wrote:
> Hard Exceptions: terminate the program unless explicitly silenced
> Soft Exceptions: pass silently unless explicitly caught
>
> In this case, I agree with the Zen of Python ("import this"):
>
> Errors should never pass silently.
> Unless explicitly silenced.
Exceptions in Python don't necessarily signal errors. Just think about
StopIteration.
Note also that the common practice of letting *possible* errors passed
silently is to return None instead of raising an exception. Moreove
people create boilerplate like this
try:
k = lst.index(elem)
...
except IndexError:
pass
instead of
with lst.index(elem) as k:
...
It would be interesting to think about SoftException semantics for
such clauses: lst.index would neither raises a HardException nor does
it return None but leads to skipping the with-block.
Is it really so exotic that it requires the demand for more use
cases?
More information about the Python-list
mailing list