On 2017-06-23 23:56, Cameron Simpson wrote:
On 24Jun2017 05:02, Steven D'Aprano <st...@pearwood.info> wrote:
[snip]

I think the concept of a "shallow exception" is ill-defined, and to the
degree that it is defined, it is *dangerous*: a bug magnet waiting to
strike.

What do you mean by "directly raised from the surface code"? Why is
bah[5] "surface code" but foo(x) is not? But call a function (or
method).
[...]

I've replied to Paul Moore and suggested this definition as implementable and
often useful:

   A shallow catch would effectively need to mean "the exception's
   uppermost traceback frame refers to one of the program lines
   in the try/except suite".  Which would work well for lists and
   other builtin types. And might be insufficient for a duck-type
   with python-coded dunder methods.

The target here is not perform magic but to have a useful tool to identify
exceptions that arise fairly directly from the adjacent clode and not what it
calls. Without writing cumbersome and fragile boilerplate to dig into an
exception's traceback.

I think a "shallow exception" would be one that's part of a defined API, as distinct from one that is an artifact of the implementation, a leak in the abstraction.

It's like when "raise ... from None" was introduced to help in those cases where you want to replace an exception that's a detail of the (current) internal implementation with one that's intended for the user.
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to