Gabriel Genellina schrieb:
En Tue, 15 Dec 2009 11:17:20 -0300, Jan Langer <jan.lan...@etit.tu-chemnitz.de> escribió:

from test.test_support import captured_output
with captured_output("stderr") as stderr:
     def g():
         try:
             g()
         except RuntimeError,e:
             pass
     g()
     print stderr.getvalue()

I expect the ignored exceptions to be printed into the StringIO object stderr. With this code there are no warnings on the command line, but getvalue() returns nothing.

If sys.stderr is not a real file, no error gets printed.
PyErr_WriteUnraisable calls PyFile_WriteString, which checks for non-file objects and only writes to them when no error is set.
Seems to be a safety measure.


thanks for the quick answer. PyErr_WriteUnraisable calls PyErr_Fetch first, which should clear the error indicator, and the PyErr_Occurred in PyFile_WriteString should return false.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to