Index: Doc/c-api/exceptions.rst =================================================================== --- Doc/c-api/exceptions.rst (revision 86636) +++ Doc/c-api/exceptions.rst (working copy) @@ -637,3 +637,76 @@ (3) Only defined on Windows; protect code that uses this by testing that the preprocessor macro ``MS_WINDOWS`` is defined. + +.. _unicodeexceptions: + +Unicode Exceptions +================== + +The following functions are used to create and modify unicode exceptions from C. + +.. c:function:: PyObject* PyUnicodeDecodeError_Create(const char *encoding, const char *object, Py_ssize_t length, Py_ssize_t start, Py_ssize_t end, const char *reason) + + Create a :class:`UnicodeDecodeError` object with the attributes *encoding*, *object*, *length*, *start*, *end* and *reason*. + +.. c:function:: PyObject* PyUnicodeEncodeError_Create(const char *encoding, const Py_UNICODE *object, Py_ssize_t length, Py_ssize_t start, Py_ssize_t end, const char *reason) + + Create a :class:`UnicodeEncodeError` object with the attributes *encoding*, *object*, *length*, *start*, *end* and *reason*. + +.. c:function:: PyObject* PyUnicodeTranslateError_Create(const Py_UNICODE *object, Py_ssize_t length, Py_ssize_t start, Py_ssize_t end, const char *reason) + + Create a :class:`UnicodeTranslateError` object with the attributes *object*, *length*, *start*, *end* and *reason*. + +.. c:function:: PyObject* PyUnicodeDecodeError_GetEncoding(PyObject *exc) +.. c:function:: PyObject* PyUnicodeEncodeError_GetEncoding(PyObject *exc) + + Return the encoding attribute of the given exception object. + +.. c:function:: PyObject* PyUnicodeDecodeError_GetObject(PyObject *exc) +.. c:function:: PyObject* PyUnicodeEncodeError_GetObject(PyObject *exc) +.. c:function:: PyObject* PyUnicodeTranslateError_GetObject(PyObject *exc) + + Return the object attribute of the given exception object. + +.. c:function:: int PyUnicodeDecodeError_GetStart(PyObject *exc, Py_ssize_t *start) +.. c:function:: int PyUnicodeEncodeError_GetStart(PyObject *exc, Py_ssize_t *start) +.. c:function:: int PyUnicodeTranslateError_GetStart(PyObject *exc, Py_ssize_t *start) + + Get the start attribute of the given exception object and place it into + *\*start*. *start* must not be *NULL*. Return ``0`` on success, ``-1`` on failure. + +.. c:function:: int PyUnicodeDecodeError_SetStart(PyObject *exc, Py_ssize_t start) +.. c:function:: int PyUnicodeEncodeError_SetStart(PyObject *exc, Py_ssize_t start) +.. c:function:: int PyUnicodeTranslateError_SetStart(PyObject *exc, Py_ssize_t start) + + Set the start attribute of the given exception object to *start*. Return ``0`` + on success, ``-1`` on failure. + +.. c:function:: int PyUnicodeDecodeError_GetEnd(PyObject *exc, Py_ssize_t *end) +.. c:function:: int PyUnicodeEncodeError_GetEnd(PyObject *exc, Py_ssize_t *end) +.. c:function:: int PyUnicodeTranslateError_GetEnd(PyObject *exc, Py_ssize_t *end) + + Get the end attribute of the given exception object and place it into + *\*end*. *end* must not be *NULL*. Return ``0`` on success, ``-1`` on failure. + +.. c:function:: int PyUnicodeDecodeError_SetEnd(PyObject *exc, Py_ssize_t end) +.. c:function:: int PyUnicodeEncodeError_SetEnd(PyObject *exc, Py_ssize_t end) +.. c:function:: int PyUnicodeTranslateError_SetEnd(PyObject *exc, Py_ssize_t end) + + Set the end attribute of the given exception object to *end*. Return ``0`` + on success, ``-1`` on failure. + +.. c:function:: PyObject* PyUnicodeDecodeError_GetReason(PyObject *exc) +.. c:function:: PyObject* PyUnicodeEncodeError_GetReason(PyObject *exc) +.. c:function:: PyObject* PyUnicodeTranslateError_GetReason(PyObject *exc) + + Return the reason attribute of the given exception object. + +.. c:function:: int PyUnicodeDecodeError_SetReason(PyObject *exc, const char *reason) +.. c:function:: int PyUnicodeEncodeError_SetReason(PyObject *exc, const char *reason) +.. c:function:: int PyUnicodeTranslateError_SetReason(PyObject *exc, const char *reason) + + Set the reason attribute of the given exception object to *reason*. + Return ``0`` on success, ``-1`` on failure. + +