mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-24 22:25:10 +00:00
Clarify error_already_set documentation.
This commit is contained in:
parent
289e5d9cc2
commit
8fbb5594fd
@ -11,45 +11,45 @@ exceptions:
|
|||||||
|
|
||||||
.. tabularcolumns:: |p{0.5\textwidth}|p{0.45\textwidth}|
|
.. tabularcolumns:: |p{0.5\textwidth}|p{0.45\textwidth}|
|
||||||
|
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
| C++ exception type | Python exception type |
|
| C++ exception type | Python exception type |
|
||||||
+======================================+==============================+
|
+======================================+======================================+
|
||||||
| :class:`std::exception` | ``RuntimeError`` |
|
| :class:`std::exception` | ``RuntimeError`` |
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
| :class:`std::bad_alloc` | ``MemoryError`` |
|
| :class:`std::bad_alloc` | ``MemoryError`` |
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
| :class:`std::domain_error` | ``ValueError`` |
|
| :class:`std::domain_error` | ``ValueError`` |
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
| :class:`std::invalid_argument` | ``ValueError`` |
|
| :class:`std::invalid_argument` | ``ValueError`` |
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
| :class:`std::length_error` | ``ValueError`` |
|
| :class:`std::length_error` | ``ValueError`` |
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
| :class:`std::out_of_range` | ``ValueError`` |
|
| :class:`std::out_of_range` | ``ValueError`` |
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
| :class:`std::range_error` | ``ValueError`` |
|
| :class:`std::range_error` | ``ValueError`` |
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
| :class:`pybind11::stop_iteration` | ``StopIteration`` (used to |
|
| :class:`pybind11::stop_iteration` | ``StopIteration`` (used to implement |
|
||||||
| | implement custom iterators) |
|
| | custom iterators) |
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
| :class:`pybind11::index_error` | ``IndexError`` (used to |
|
| :class:`pybind11::index_error` | ``IndexError`` (used to indicate out |
|
||||||
| | indicate out of bounds |
|
| | of bounds access in ``__getitem__``, |
|
||||||
| | accesses in ``__getitem__``, |
|
| | ``__setitem__``, etc.) |
|
||||||
| | ``__setitem__``, etc.) |
|
+--------------------------------------+--------------------------------------+
|
||||||
+--------------------------------------+------------------------------+
|
| :class:`pybind11::value_error` | ``ValueError`` (used to indicate |
|
||||||
| :class:`pybind11::value_error` | ``ValueError`` (used to |
|
| | wrong value passed in |
|
||||||
| | indicate wrong value passed |
|
| | ``container.remove(...)``) |
|
||||||
| | in ``container.remove(...)`` |
|
+--------------------------------------+--------------------------------------+
|
||||||
+--------------------------------------+------------------------------+
|
| :class:`pybind11::key_error` | ``KeyError`` (used to indicate out |
|
||||||
| :class:`pybind11::key_error` | ``KeyError`` (used to |
|
| | of bounds access in ``__getitem__``, |
|
||||||
| | indicate out of bounds |
|
| | ``__setitem__`` in dict-like |
|
||||||
| | accesses in ``__getitem__``, |
|
| | objects, etc.) |
|
||||||
| | ``__setitem__`` in dict-like |
|
+--------------------------------------+--------------------------------------+
|
||||||
| | objects, etc.) |
|
| :class:`pybind11::error_already_set` | Indicates that the Python exception |
|
||||||
+--------------------------------------+------------------------------+
|
| | flag has already been set via Python |
|
||||||
| :class:`pybind11::error_already_set` | Indicates that the Python |
|
| | API calls from C++ code; this C++ |
|
||||||
| | exception flag has already |
|
| | exception is used to propagate such |
|
||||||
| | been initialized |
|
| | a Python exception back to Python. |
|
||||||
+--------------------------------------+------------------------------+
|
+--------------------------------------+--------------------------------------+
|
||||||
|
|
||||||
When a Python function invoked from C++ throws an exception, it is converted
|
When a Python function invoked from C++ throws an exception, it is converted
|
||||||
into a C++ exception of type :class:`error_already_set` whose string payload
|
into a C++ exception of type :class:`error_already_set` whose string payload
|
||||||
|
Loading…
Reference in New Issue
Block a user