Jak ponownie rzucić wyjątek w AspectJ wokół doradzać

Mam kilka metod, które zgłaszają wyjątek, i chcę użyć AspectJ wokół, aby obliczyć czas wykonania i jeśli zostanie zgłoszony jakiś wyjątek i zalogować się do dziennika błędów i kontynuować przepływ, ponownie rzucając wyjątek.

Próbowałem to osiągnąć, ale zaćmienie mówi „Nieobsługiwany typ wyjątku”.

Kodeks przeciwko komu należy użyć: -

<code>public interface Iface {
    public void reload() throws TException;

    public TUser getUserFromUserId(int userId, String serverId) throws ResumeNotFoundException, TException;

    public TUser getUserFromUsername(String username, String serverId) throws  ResumeNotFoundException, TException;

    public TResume getPartialActiveProfileFromUserId(int userId, int sectionsBitField, String serverId) throws ResumeNotFoundException, UserNotFoundException;

    public TResume getPartialActiveProfileFromUsername(String username, int sectionsBitField, String serverId) throws ResumeNotFoundException, UserNotFoundException, TException;
}
</code>

Aspekt koduj: -

<code>public aspect AspectServerLog {

public static final Logger ERR_LOG = LoggerFactory.getLogger("error");

Object around() : call (* com.abc.Iface.* (..)) {
    Object ret;
    Throwable ex = null;

    StopWatch watch = new Slf4JStopWatch();

    try {
    ret = proceed();
    }catch (UserNotFoundException e) {
    ex = e ;
     throw e ;
    } catch (ResumeNotFoundException e) {
    ex = e ;
    throw e ;
    } catch (Throwable e) {
    ex = e ;
    throw new RuntimeException(e);
    }finally{

    watch.stop(thisJoinPoint.toShortString());

    if(ex!=null){
        StringBuilder mesg = new StringBuilder("Exception in ");
        mesg.append(thisJoinPoint.toShortString()).append('(');
        for(Object o : thisJoinPoint.getArgs()) {
        mesg.append(o).append(',');
        }
        mesg.append(')');

        ERR_LOG.error(mesg.toString(), ex);
        numEx++;
    }

   }
return ret;
}
}
</code>

Pomóż, dlaczego ten aspekt nie działa.

questionAnswers(3)

yourAnswerToTheQuestion