Получение значений параметров, переданных методу при обработке исключения с помощью Spring AOP - PullRequest
4 голосов
/ 20 марта 2012

В методе моего аспектного класса я хочу получить значения параметров и имя параметров. Имена все еще в порядке, если я не получаю, но мне нужно получить значения переданных параметров, это возможно? (Нет проблем с выражением ptCut, вызывается метод, который я проверял с помощью sysouts)

Мой метод Aspect выглядит примерно так:

    public void excpetionHappened(Exception e) {
    // Log the exception
    // log the name of the method name/signature which caused the exception
    // log the value of the input parameters to the method
    // wrap and throw new exctn

}

Заранее спасибо.

1 Ответ

3 голосов
/ 20 марта 2012

Вы можете воспользоваться советом вокруг.

Это позволяет получить доступ к параметру при обработке исключения.

public aspect ExceptionReporterAspect {

    /** The name of the used logger. */
    public final static String LOGGER_NAME = "AspectJExceptionLogger";

    /** Logger used to log messages. */
    private static final Log LOGGER = LogFactory.getLog(LOGGER_NAME);

    pointcut stringRequestHandler() : 
        execution (@RequestMapping Object the.package..*(..));

    Object around(): objectRequestHandler(){
        try {
            return proceed();
        } catch (Exception ex){
            Signature sig = thisJoinPointStaticPart.getSignature();
            Object[] args = thisJoinPoint.getArgs();

            String location = sig.getDeclaringTypeName() + '.' + sig.getName() + ", args=" + Arrays.toString(args);
            LOGGER.warn("(AOP detected) exception within " + location, ex);

               throw(ex)
        }
    }   
}
...