0

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

我的方面方法是这样的:

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

 }
 return returnVal ;

}

目前我面临的问题是:发生异常时我想记录异常但我不想返回null(returnval)。是否可以?

在没有 AOP 的正常情况下:当方法中的某行在该行之后抛出异常时,不会执行其他行。我想要这样的行为。

我们怎样才能实现它?

4

1 回答 1

2

好老的检查异常,只是不断咬人的Java设计错误。

只需重新抛出可投掷物:

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

于 2012-04-13T11:48:13.903 回答