Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-9435

Document uses of pex::exceptions

    XMLWordPrintable

Details

    • 6
    • Alert Production S17 - 6, AP S18-3, AP S18-5
    • Alert Production

    Description

      I cannot find any documents on what to use our current pex::exceptions for. Many of them are similar to the std::c++ exceptions, but even having links to the "matching" C++ doc for each exception would be a start. Some of our exceptions have no std:: counterpart. Either way, it's often unclear at the C++ layer what one should raise. Even a single sentence each would be a good start.

      If this documentation does exist, I can't readily find it in our doxygen or source code.

      Adding a large watcher list, since when I brought this up on slack, jbosch said

      ...first someone has to actually decide what those uses are, and the list of people who feel empowered to decide that is very small.

      Attachments

        Issue Links

          Activity

            jbosch Jim Bosch added a comment -

            For sequence indexing errors, we should try to throw Python's built-in IndexError (not just a subclass) whenever possible; see DM-9715.

            jbosch Jim Bosch added a comment - For sequence indexing errors, we should try to throw Python's built-in IndexError (not just a subclass) whenever possible; see DM-9715 .

            Possibly useful for getting around problems like IndexError: http://pybind11.readthedocs.io/en/master/advanced/exceptions.html#registering-custom-translators (note that by default most C++ exceptions get wrapped as ValueError).

            krzys Krzysztof Findeisen added a comment - Possibly useful for getting around problems like IndexError : http://pybind11.readthedocs.io/en/master/advanced/exceptions.html#registering-custom-translators (note that by default most C++ exceptions get wrapped as ValueError ).
            jbosch Jim Bosch added a comment -

            Note that we've actually used that functionality quite a bit already to wrap our custom C++ exceptions - I think pschella may have done most of the implementation for it

            So I think the real question is what those C++ exceptions should be translated to. It's a shame that subclassing IndexError isn't enough for Python in some contexts, but maybe that's a sign we should have C++ exceptions that mirror the Python built-ins, and just translate directly to those.

            jbosch Jim Bosch added a comment - Note that we've actually used that functionality quite a bit already to wrap our custom C++ exceptions - I think pschella may have done most of the implementation for it So I think the real question is what those C++ exceptions should be translated to. It's a shame that subclassing IndexError isn't enough for Python in some contexts, but maybe that's a sign we should have C++ exceptions that mirror the Python built-ins, and just translate directly to those.

            For `IndexError` we should just throw `py::index_error` in the wrappers. If we need it higher up in C++ we can easily change the exception translator in `pex_exceptions`.

            pschella Pim Schellart [X] (Inactive) added a comment - For `IndexError` we should just throw `py::index_error` in the wrappers. If we need it higher up in C++ we can easily change the exception translator in `pex_exceptions`.

            pschella, would you be willing to review this? The actual RFC-448 changes are about 130 lines, but I took the liberty of doing a few style fixes like clang-format as well.

            krzys Krzysztof Findeisen added a comment - pschella , would you be willing to review this? The actual RFC-448 changes are about 130 lines, but I took the liberty of doing a few style fixes like clang-format as well.

            See comments on PR.

            pschella Pim Schellart [X] (Inactive) added a comment - See comments on PR.

            pschella, I replied on the PR. In particular, any suggestions for how to clarify the recommendations about py::index_error and py::key_error would be greatly appreciated.

            krzys Krzysztof Findeisen added a comment - pschella , I replied on the PR. In particular, any suggestions for how to clarify the recommendations about py::index_error and py::key_error would be greatly appreciated.

            People

              krzys Krzysztof Findeisen
              Parejkoj John Parejko
              Pim Schellart [X] (Inactive)
              Jim Bosch, John Parejko, John Swinbank, Jonathan Sick, Kian-Tat Lim, Krzysztof Findeisen, Pim Schellart [X] (Inactive), Russell Owen, Simon Krughoff (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Jenkins

                  No builds found.