【问题标题】:Intercept a handled (caught) exception via AOP or in another way通过 AOP 或其他方式拦截已处理(捕获)的异常
【发布时间】:2019-09-18 18:08:54
【问题描述】:

有什么方法可以从下面的方法中读取异常并将其传递给其他方法进行跟踪。 catch 块的响应与异常不同。

添加一些注解或spring AOP或任何其他方式。

public void function(){
  try{
    method();
  }
  catch(Exception e){
    return response;
  }
}

【问题讨论】:

  • 欢迎来到 SO。请了解MCVE 是什么以及如何以一种使您的同行开发人员能够实际重现和分析您的问题的方式提出问题,而不必从微小的代码 sn-ps 和模棱两可的散文中做出有根据的猜测。给你的问题更多的爱,然后你会得到更快更好的答案,而不是你迄今为止得到的那些对你没有真正帮助的答案,只是浪费人们写答案的时间。我知道你的意思,但我也必须猜测。

标签: java spring aop aspectj spring-aop


【解决方案1】:

你可以有一个带有异常参数的方法:

public void handleException(Exception e) {
    e.printStackTrace(); //for example print it   
}

然后你可以将你的异常传递给这个方法:

try {
   //some code that can throw exception
} catch(Exception e) {
   handleException(e);
}

【讨论】:

    【解决方案2】:

    我认为你想要的是拦截一个异常处理程序,而不是一个抛出的异常。为此,您需要按照Spring manual 中的说明从 Spring AOP 切换到 AspectJ 模式。

    有关执行所需操作的 AspectJ handler() 切入点的更多详细信息,请在此处查看我的答案和代码示例:

    handler() 切入点也在AspectJ documentation 中进行了描述。

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多