java - Byte Buddy 将 Try block 添加到现有方法中

标签 java instrumentation byte-buddy javaagents

使用 Byte Buddy,我尝试在 @Advice.OnMethodExit@Advice.OnMethodEnter 上添加一些内容。我想通过我正在构建的自定义代理添加这样的 block 。

public String getSomeMethodName() {
        try{

// Default block of code present without instrumentation

        }finally {
// Some Code Snippets added by agent.
        }
    }

基本上该函数甚至没有 try block 。我怎样才能添加它以及finally block 。这样做是一个好的做法吗?或者实现这一目标的最佳实践是什么?

我正在尝试添加

try{ 

 }catch(){
 }

OnMethod.Enter中。

想要包含 finally block OnMethod.Exit

最佳答案

使用@Advice.OnMethodExit(onThrowable = Throwable.class)。即使抛出任何可抛出类型,这也会触发建议,finally block 的语义是什么。

关于java - Byte Buddy 将 Try block 添加到现有方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59760073/

相关文章:

android - 在 Dalvik 字节码上添加新寄存器

java - 如何使用 bytebuddy 向类添加私有(private)字段

java - 在java中可靠地卸载dll

java - 缺少 PubNub 回调

c - GCC插件: copying function's arguments

java - 无法以编程方式触发点击事件

java - 创建两个线程,一个显示奇数和其他偶数

java - YuiCompressorTask : "Can' t find bundle for base name org. mozilla.javascript.resources.Messages,区域设置 en_US"

java - 如何使用字节好友创建懒加载类?

java - 如何让 ByteBuddy 构建类实现并初始化成员变量?