java ASM创建try catch动态

时间:2014-04-16 11:34:32

标签: java dynamic try-catch

我必须通过更改一些指令来检测java类文件。更确切地说,goto指令必须用invokestatic指令替换。现在使用invokestatic调用的方法可以抛出异常,但在原始代码中(当然)没有try / catch。

在某种程度上,ASM是否可以在新的invokestatic指令周围放置try / catch? (目标是在catch中添加一个goto并将流重定向到原始goto的目标,就好像什么都没发生一样)

我已经尝试用Javassist实现这个目标但是无法让它工作。有一些事情要考虑,比如更新的异常表,新的堆栈帧,本地化的数量变化甚至更多。我希望ASM可以简化这一切。

非常感谢任何帮助。

0 个答案:

没有答案