Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Bytebuddy拦截异常抛出_Java_Jvm_Byte Buddy - Fatal编程技术网

Java Bytebuddy拦截异常抛出

Java Bytebuddy拦截异常抛出,java,jvm,byte-buddy,Java,Jvm,Byte Buddy,我想截获异常抛出并使用bytebuddy记录它。可能吗?如果没有,还有什么其他工具可以让我这样做?您可以使用AgentBuilder编写Java代理,您可以在所有相关类型上使用简单的MethodDelegation截取类: class MyInterceptor { @RuntimeType public static Object intercept(@SuperClass Callable<?> zuper) throws Exception { try {

我想截获异常抛出并使用bytebuddy记录它。可能吗?如果没有,还有什么其他工具可以让我这样做?

您可以使用
AgentBuilder
编写Java代理,您可以在所有相关类型上使用简单的
MethodDelegation
截取类:

class MyInterceptor {
  @RuntimeType
  public static Object intercept(@SuperClass Callable<?> zuper) throws Exception {
    try {
      return zuper.call();
    } catch (Throwable t) {
      // log here
      throw t;
    }
  }
}
类MyInterceptor{
@运行时类型
公共静态对象截获(@SuperClass Callable zuper)引发异常{
试一试{
返回zuper.call();
}捕获(可丢弃的t){
//在这里登录
掷t;
}
}
}

有关如何实现代理的教程,您可以阅读。

您可以使用
AgentBuilder
编写Java代理,其中您可以在所有相关类型上使用简单的
MethodDelegation
截取类:

class MyInterceptor {
  @RuntimeType
  public static Object intercept(@SuperClass Callable<?> zuper) throws Exception {
    try {
      return zuper.call();
    } catch (Throwable t) {
      // log here
      throw t;
    }
  }
}
类MyInterceptor{
@运行时类型
公共静态对象截获(@SuperClass Callable zuper)引发异常{
试一试{
返回zuper.call();
}捕获(可丢弃的t){
//在这里登录
掷t;
}
}
}

有关如何实现代理的教程,您可以阅读。

如果在不理解的代码中执行此操作,则可能会记录虚假异常。您最好尝试使用调试器修复代码,在调试器中可以捕获特定异常或引发的所有异常。如果您在代码中执行此操作,您可能不理解它可能会记录虚假异常。最好尝试使用调试器修复代码,调试器可以捕获特定异常或引发的所有异常。