在 catch 上调用什么 ASM 访问者方法进行类型注释

What ASM Visitor Method gets called for type annotation on catch

我有以下代码片段,我用 ASM 对其进行了分析

   try{
    } catch (@TypeAnno7 RuntimeException re){

    }

我找不到为注释调用的正确方法。我以为 MethodVisitor.visitTryCatchAnnotation 可以解决问题,但它没有被调用。

那么:正确的使用方法是什么?提到的方法调用了什么样的代码?

Java 编译器不会为 try/catch 生成任何字节码,除非 try 主体包含一些代码(否则,catch 块实际上永远不会 运行,所以它是一种形式死代码消除),您可以使用 javac -p 进行验证。在 try 体中添加一些代码,然后应该会调用 visitTryCatchAnnotation。