我注意到,当Java代码中有finally
子句时,总会生成.catchall
来标识finally
块或使用.catchall
标签对其进行内联,但是我没有找到有关是否是案例或更多解释的在线信息,有人知道吗?
最佳答案
是的,finally块是可能会生成.catchall的一种情况。但是,它也可以用于其他用途。例如,它也可以在同步方法的情况下生成,以确保释放锁定。
捕获所有处理程序记录在dex-format规范中。具体来说,在code_item中包含的encode_catch_handler项中。
同样相关的是classfile specification中的等效数据。请参阅exception_table中的catch_type项。