On 2020-04-11 10:46 a.m., Eric V. Smith wrote:
On 4/11/2020 9:38 AM, Soni L. wrote:
On 2020-04-11 10:27 a.m., Eric V. Smith wrote:
tl;dr: I show how the goal of Soni L's exception spaces can be
addressed today, via less intrusive means. (Assuming I understand
their proposal, that is.)
what's the point of having standard types if you're not supposed to
use them because they mask bugs?
what if you end up with a nested call to your own library and catch
it at the wrong place? (or, indeed, someone else also uses this
technique but somewhere along the way a built-in exception is being
caught)
you're just delaying the issue/shifting it around, instead of solving
it once and for all.
You show no examples where your proposal addresses those issues but
mine doesn't.
Your responses sound like the only thing you're interested in is
having your proposal accepted, not in the problem that needs to be
solved. The fact that you don't address some of my points (for
example: changes to intermediate libraries, which your proposal
requires) just reinforces this impression. As such, I'm going to drop
out of this discussion.
yes, I absolutely do want my proposal accepted. I'd think anyone coming
up with a proposal would want that. but that's not the point I'm trying
to make.
in current python, you can't safely handle exceptions, *because* of the
remote chance of them being raised *by the wrong thing/for the wrong
reason*.
rust doesn't have that problem, as it effectively forces you to handle
exceptions all the time, and is constantly wrapping and unwrapping
exceptions in exceptions and whatnot.
I'm not saying rust has the best solution. I don't like how it's so
explicit about error handling. sometimes letting it bubble up is great.
but rust doesn't have the problem of exception handling being inherently
dangerous, context-sensitive, and destructive to application logic.
python's exception handling is effectively a form of dynamic scoping, as
defined by wikipedia: "In some languages, however, "part of a program"
refers to "portion of run time (time period during execution)", and is
known as *dynamic scope*.".
this is the whole problem.
Eric
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message/L5UDJMCLMQGPPSGK3OY65OJ3GFYIZI2T/
Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message/GJUCXNDVMSOW7AB53LLD6V7E54XDYXBX/
Code of Conduct: http://python.org/psf/codeofconduct/