Issue #9738: Document PyErr_SetString() and PyErr_SetFromErrnoWithFilename()

encodings
This commit is contained in:
Victor Stinner 2010-10-09 10:12:11 +00:00
parent fc8408cbe8
commit 257d38ffdd
3 changed files with 13 additions and 3 deletions

View File

@ -134,7 +134,7 @@ in various ways. There is a separate error indicator for each thread.
This is the most common way to set the error indicator. The first argument This is the most common way to set the error indicator. The first argument
specifies the exception type; it is normally one of the standard exceptions, specifies the exception type; it is normally one of the standard exceptions,
e.g. :c:data:`PyExc_RuntimeError`. You need not increment its reference count. e.g. :c:data:`PyExc_RuntimeError`. You need not increment its reference count.
The second argument is an error message; it is converted to a string object. The second argument is an error message; it is decoded from ``'utf-8``'.
.. c:function:: void PyErr_SetObject(PyObject *type, PyObject *value) .. c:function:: void PyErr_SetObject(PyObject *type, PyObject *value)
@ -261,6 +261,8 @@ in various ways. There is a separate error indicator for each thread.
*filename* is not *NULL*, it is passed to the constructor of *type* as a third *filename* is not *NULL*, it is passed to the constructor of *type* as a third
parameter. In the case of exceptions such as :exc:`IOError` and :exc:`OSError`, parameter. In the case of exceptions such as :exc:`IOError` and :exc:`OSError`,
this is used to define the :attr:`filename` attribute of the exception instance. this is used to define the :attr:`filename` attribute of the exception instance.
*filename* is decoded from the filesystem encoding
(:func:`sys.getfilesystemencoding`).
.. c:function:: PyObject* PyErr_SetFromWindowsErr(int ierr) .. c:function:: PyObject* PyErr_SetFromWindowsErr(int ierr)

View File

@ -60,7 +60,10 @@ typedef struct {
PyAPI_FUNC(void) PyErr_SetNone(PyObject *); PyAPI_FUNC(void) PyErr_SetNone(PyObject *);
PyAPI_FUNC(void) PyErr_SetObject(PyObject *, PyObject *); PyAPI_FUNC(void) PyErr_SetObject(PyObject *, PyObject *);
PyAPI_FUNC(void) PyErr_SetString(PyObject *, const char *); PyAPI_FUNC(void) PyErr_SetString(
PyObject *exception,
const char *string /* decoded from utf-8 */
);
PyAPI_FUNC(PyObject *) PyErr_Occurred(void); PyAPI_FUNC(PyObject *) PyErr_Occurred(void);
PyAPI_FUNC(void) PyErr_Clear(void); PyAPI_FUNC(void) PyErr_Clear(void);
PyAPI_FUNC(void) PyErr_Fetch(PyObject **, PyObject **, PyObject **); PyAPI_FUNC(void) PyErr_Fetch(PyObject **, PyObject **, PyObject **);
@ -177,7 +180,9 @@ PyAPI_FUNC(PyObject *) PyErr_SetFromErrno(PyObject *);
PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObject( PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObject(
PyObject *, PyObject *); PyObject *, PyObject *);
PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilename( PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilename(
PyObject *, const char *); PyObject *exc,
const char *filename /* decoded from the filesystem encoding */
);
#ifdef MS_WINDOWS #ifdef MS_WINDOWS
PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithUnicodeFilename( PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithUnicodeFilename(
PyObject *, const Py_UNICODE *); PyObject *, const Py_UNICODE *);

View File

@ -10,6 +10,9 @@ What's New in Python 3.2 Alpha 3?
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #9738: Document PyErr_SetString() and PyErr_SetFromErrnoWithFilename()
encodings
- ast.literal_eval() can now handle negative numbers. It is also a little - ast.literal_eval() can now handle negative numbers. It is also a little
more liberal in what it accepts without compromising the safety of the more liberal in what it accepts without compromising the safety of the
evaluation. For example, 3j+4 and 3+4+5 are both accepted. evaluation. For example, 3j+4 and 3+4+5 are both accepted.