This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author petri.lehtinen
Recipients docs@python, ezio.melotti, ncoghlan, petri.lehtinen, pitrou
Date 2011-10-18.18:16:42
SpamBayes Score 3.0538e-05
Marked as misclassified No
Message-id <>
The documentation of generator.throw() gives this signature:

    generator.throw(type[, value[, traceback]])

Looking at the code, it accepts the following arguments:

  g.throw(ExcType)  --> raise ExcType()

  g.throw(ExcType, None)  --> raise ExcType()

  g.throw(ExcType, None, tb)  --> raise ExcType().with_traceback(tb)

  g.throw(ExcType, instace_of_ExcType)  --> raise instance_of_ExcType

  g.throw(ExcType, instace_of_ExcType, tb)  --> raise instance_of_ExcType.with_traceback(tb)

  g.throw(ExcType, other_value)  --> raise ExcType(other_value)

  g.throw(ExcType, other_value, tb)  --> raise ExcType(other_value).with_traceback(tb)

Up to this point, I think everything is in line with the documentation. But it also accepts the following (now that issue 13188 is fixed):

  g.throw(exc_instance) --> raise exc_instance (preserving the traceback of exc_instance)

  g.throw(exc_instance, None) --> raise exc_instance (preserving the traceback of exc_instance)

  g.throw(exc_instance, None, tb) --> raise exc_instance.with_traceback(tb)

It does not accept these, throwing a TypeError:

  g.throw(exc_instance, some_value_other_than_None)
  g.throw(exc_instance, some_value_other_than_None, tb)
  g.throw(exc_instance, tb)

The documentation is really unclear on throwing existing exception instances with (exc_instance) or (exc_instance, None), and that calling with (type, value) or (type, value, tb) will create a new exception if not isinstance(value, type).
Date User Action Args
2011-10-18 18:16:43petri.lehtinensetrecipients: + petri.lehtinen, ncoghlan, pitrou, ezio.melotti, docs@python
2011-10-18 18:16:43petri.lehtinensetmessageid: <>
2011-10-18 18:16:43petri.lehtinenlinkissue13213 messages
2011-10-18 18:16:42petri.lehtinencreate