我正在使用Spring AOP进行异常处理。
 我正在使用建议,因为我想记录输入参数。

我的方面方法是这样的:

public Object methodName(ProceedingJointPoint pjp){
  Object returnVal = null;
   try{
  returnVal = pjp.proceed();
 } catch(Throable t) {
   // Log exception

 }
 return returnVal ;

}


我当前面临的问题是:发生异常时,我想记录该异常,但是我不想返回null(返回值)。可能吗?

在没有AOP的正常情况下:当方法中的某些行在该行之后引发Exception时,将不执行其他任何行。我想要这样的行为。

我们怎么能做到呢?

最佳答案

良好的旧的已检查异常,这是Java设计错误的不二之选。

只需将throwable扔掉:

public Object methodName(ProceedingJointPoint pjp) throws Throwable {

...

 try {
   return pjp.proceed();
 } catch (Throwable t) {
   // so something with t: log, wrap, return default, ...
   log.warn("invocation of " + pjp.getSignature().toLongString() + " failed", t);
   // I hate logging and re-raising, but let's do it for the sake of this example
   throw t;
 }


看到这里:https://stackoverflow.com/a/5309945/116509

07-24 09:16