我注意到在Java代码中有finally
子句时,总是生成.catchall
来识别finally
块或使用.catchall
标签将其内联,但我没有找到任何关于是否如此或更多解释的在线信息,有人知道吗?
是的,finally块是一个情况,可能会生成.catchall。但是,它也可以用于其他事情。例如,在同步方法的情况下,它也可以生成,以确保锁被释放。
捕获所有处理程序在dex-format规范中有记录。具体来说,在包含在code_item中的encoded_catch_handler项目中。
还涉及classfile specification中等效的数据部分。请参见exception_table中的catch_type项。