在catch上调用ASM访问者方法的类型注释

时间:2015-03-21 23:16:33

标签: java java-bytecode-asm type-annotation

我有以下代码片段,我用ASM分析

   try{
    } catch (@TypeAnno7 RuntimeException re){

    }

我无法找到为Annotation调用的正确方法。我认为MethodVisitor.visitTryCatchAnnotation可以解决这个问题,但它并没有被调用。

那么:使用的正确方法是什么?并且为什么类型的代码被调用?

1 个答案:

答案 0 :(得分:3)

Java编译器不为try / catch生成任何字节码,除非try主体包含一些代码(否则,catch块可能永远不会实际运行,因此它是一种消除死代码的形式),您可以使用{ {1}}。向try主体添加一些代码,然后调用visitTryCatchAnnotation。