Wie re-throw-exception in AspectJ rund um beraten

Habe ich einige Methoden, die wirft einige Ausnahme, und ich will AspectJ um zu beraten, um die Berechnung der Ausführungszeit und wenn einige exception geworfen wird und auf log-in Fehler-log und weiterhin den Fluss durch erneutes auslösen der exception.

Habe ich versucht dies zu erreichen durch folgende aber eclipse sagt "Unbehandelte Ausnahme-Typ".

Code-gegen wen aspectj wird verwendet :-

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;
}

Aspectj-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;
}
}

Bitte helfen warum das AspectJ nicht funktioniert.

InformationsquelleAutor Arpit Mittal | 2012-04-27
Schreibe einen Kommentar