mirror of https://github.com/python/cpython
bpo-14911: Corrected generator.throw() documentation (GH-32207)
Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
This commit is contained in:
parent
a00518d9ad
commit
8be7c2bc5a
|
@ -589,7 +589,7 @@ generator function.
|
||||||
In addition to :meth:`~generator.send`, there are two other methods on
|
In addition to :meth:`~generator.send`, there are two other methods on
|
||||||
generators:
|
generators:
|
||||||
|
|
||||||
* :meth:`throw(type, value=None, traceback=None) <generator.throw>` is used to
|
* :meth:`throw(value) <generator.throw>` is used to
|
||||||
raise an exception inside the generator; the exception is raised by the
|
raise an exception inside the generator; the exception is raised by the
|
||||||
``yield`` expression where the generator's execution is paused.
|
``yield`` expression where the generator's execution is paused.
|
||||||
|
|
||||||
|
|
|
@ -2984,7 +2984,8 @@ generators, coroutines do not directly support iteration.
|
||||||
:exc:`StopIteration`, or other exception) is the same as when
|
:exc:`StopIteration`, or other exception) is the same as when
|
||||||
iterating over the :meth:`__await__` return value, described above.
|
iterating over the :meth:`__await__` return value, described above.
|
||||||
|
|
||||||
.. method:: coroutine.throw(type[, value[, traceback]])
|
.. method:: coroutine.throw(value)
|
||||||
|
coroutine.throw(type[, value[, traceback]])
|
||||||
|
|
||||||
Raises the specified exception in the coroutine. This method delegates
|
Raises the specified exception in the coroutine. This method delegates
|
||||||
to the :meth:`~generator.throw` method of the iterator that caused
|
to the :meth:`~generator.throw` method of the iterator that caused
|
||||||
|
|
|
@ -561,14 +561,27 @@ is already executing raises a :exc:`ValueError` exception.
|
||||||
could receive the value.
|
could receive the value.
|
||||||
|
|
||||||
|
|
||||||
.. method:: generator.throw(type[, value[, traceback]])
|
.. method:: generator.throw(value)
|
||||||
|
generator.throw(type[, value[, traceback]])
|
||||||
|
|
||||||
Raises an exception of type ``type`` at the point where the generator was paused,
|
Raises an exception at the point where the generator was paused,
|
||||||
and returns the next value yielded by the generator function. If the generator
|
and returns the next value yielded by the generator function. If the generator
|
||||||
exits without yielding another value, a :exc:`StopIteration` exception is
|
exits without yielding another value, a :exc:`StopIteration` exception is
|
||||||
raised. If the generator function does not catch the passed-in exception, or
|
raised. If the generator function does not catch the passed-in exception, or
|
||||||
raises a different exception, then that exception propagates to the caller.
|
raises a different exception, then that exception propagates to the caller.
|
||||||
|
|
||||||
|
In typical use, this is called with a single exception instance similar to the
|
||||||
|
way the :keyword:`raise` keyword is used.
|
||||||
|
|
||||||
|
For backwards compatability, however, the second signature is
|
||||||
|
supported, following a convention from older versions of Python.
|
||||||
|
The *type* argument should be an exception class, and *value*
|
||||||
|
should be an exception instance. If the *value* is not provided, the
|
||||||
|
*type* constructor is called to get an instance. If *traceback*
|
||||||
|
is provided, it is set on the exception, otherwise any existing
|
||||||
|
:attr:`~BaseException.__traceback__` attribute stored in *value* may
|
||||||
|
be cleared.
|
||||||
|
|
||||||
.. index:: exception: GeneratorExit
|
.. index:: exception: GeneratorExit
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -410,8 +410,11 @@ gen_close(PyGenObject *gen, PyObject *args)
|
||||||
|
|
||||||
|
|
||||||
PyDoc_STRVAR(throw_doc,
|
PyDoc_STRVAR(throw_doc,
|
||||||
"throw(typ[,val[,tb]]) -> raise exception in generator,\n\
|
"throw(value)\n\
|
||||||
return next yielded value or raise StopIteration.");
|
throw(type[,value[,tb]])\n\
|
||||||
|
\n\
|
||||||
|
Raise exception in generator, return next yielded value or raise\n\
|
||||||
|
StopIteration.");
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
_gen_throw(PyGenObject *gen, int close_on_genexit,
|
_gen_throw(PyGenObject *gen, int close_on_genexit,
|
||||||
|
@ -1157,8 +1160,11 @@ PyDoc_STRVAR(coro_send_doc,
|
||||||
return next iterated value or raise StopIteration.");
|
return next iterated value or raise StopIteration.");
|
||||||
|
|
||||||
PyDoc_STRVAR(coro_throw_doc,
|
PyDoc_STRVAR(coro_throw_doc,
|
||||||
"throw(typ[,val[,tb]]) -> raise exception in coroutine,\n\
|
"throw(value)\n\
|
||||||
return next iterated value or raise StopIteration.");
|
throw(type[,value[,traceback]])\n\
|
||||||
|
\n\
|
||||||
|
Raise exception in coroutine, return next iterated value or raise\n\
|
||||||
|
StopIteration.");
|
||||||
|
|
||||||
PyDoc_STRVAR(coro_close_doc,
|
PyDoc_STRVAR(coro_close_doc,
|
||||||
"close() -> raise GeneratorExit inside coroutine.");
|
"close() -> raise GeneratorExit inside coroutine.");
|
||||||
|
|
Loading…
Reference in New Issue