我有下面的代码片段,我用ASM 对其进行了分析
try{
} catch (@TypeAnno7 RuntimeException re){
}
我找不到为Annotation调用的正确方法。我以为MethodVisitor.visitTryCatchAnnotation会起作用,但它没有被调用。
那么:正确的方法是什么?对于什么样的代码,会调用上面提到的方法?
Java编译器不会为try/catch生成任何字节码,除非try主体包含一些代码(否则,catch块永远无法实际运行,因此这是一种死代码消除形式),您可以使用javac -p
验证这些代码。在try正文中添加一些代码,然后应该调用visitTryCatchAnnotation。