消息 [343247]
In PR 13490, Thomas Grainger proposed a cool context manager:
@contextlib.contextmanager
def throw_unraisable_exceptions():
unraisable = None
old_hook = sys.unraisablehook
def hook(exc):
nonlocal unraisable
unraisable = exc
sys.unraisablehook = hook
try:
yield
if unraisable is not None:
raise unraisable
finally:
unraisable = None
sys.unraisablehook = old_hook
It allows to raise an unraisable exception :-D Example:
try:
with support.throw_unraisable_exceptions():
...
except Exception as e:
... # the exception is now here
I don't need such context manager right now, but I like the fact that it becomes possible to write such context manager :-) |
|
| 日期 |
用户 |
动作 |
参数 |
| 2019-05-22 21:45:57 | vstinner | 修改 | recipients:
+ vstinner, serhiy.storchaka, graingert, matrixise, ZackerySpytz |
| 2019-05-22 21:45:57 | vstinner | 修改 | messageid: <1558561557.16.0.219529956893.issue36829@roundup.psfhosted.org> |
| 2019-05-22 21:45:57 | vstinner | 链接 | issue36829 messages |
| 2019-05-22 21:45:57 | vstinner | 创建 | |
|