Message150352
| Author |
sbt |
| Recipients |
amaury.forgeotdarc, pitrou, sbt |
| Date |
2011年12月29日.22:08:54 |
| SpamBayes Score |
1.5726309e-13 |
| Marked as misclassified |
No |
| Message-id |
<1325196535.65.0.933073355806.issue13673@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
> I think calling PyErr_WriteUnraisable would be more appropriate than
> PyErr_Clear.
You mean just adding
PyErr_CheckSignals();
if (PyErr_Occurred())
PyErr_WriteUnraisable(NULL);
before the call to PyFile_WriteString()? That seems to work:
>>> from testsigint import *; wait()
^CException KeyboardInterrupt ignored
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError
> I also wonder whether it's ok to ignore the exception. Pressing e.g.
> Ctrl-C generally shouldn't fail to stop the program, even if another
> exception is being processed at that moment.
The ignoring and clearing of exceptions also happens higher (lower?) in the call stack in print_exception() and print_exception_recursive(). For example, print_exception() ends with
/* If an error happened here, don't show it.
XXX This is wrong, but too many callers rely on this behavior. */
if (err != 0)
PyErr_Clear();
} |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2011年12月29日 22:08:55 | sbt | set | recipients:
+ sbt, amaury.forgeotdarc, pitrou |
| 2011年12月29日 22:08:55 | sbt | set | messageid: <1325196535.65.0.933073355806.issue13673@psf.upfronthosting.co.za> |
| 2011年12月29日 22:08:55 | sbt | link | issue13673 messages |
| 2011年12月29日 22:08:54 | sbt | create |
|