Geek_3d35fd
2024-10-05
来自北京
cpython中POP_EXCEPT字节码实现是pop block之后就直接continue,执行紧挨着的下一个字节码了
Geek_3d35fd
2024-10-05
来自北京
看代码有一个疑惑, 很长字节码部分执行到POP_EXCEPT弹出栈上异常对象,设置执行器状态是异常,会触发pop Block(type=setup_finally),重置状态为IS_OK,然后执行finally部分代码,改部分代码执行完紧接着执行END_FINALLY字节码,会重新设置状态为IS_EXCEPTION, 弹完BLOCK后状态始终是IS_EXCEPTION, 这样异常并没有捕获接着逐渐向上抛出了,正常应该在本函数捕获了啊