Como re-lançar exceção no AspectJ em torno de aconselhar
Eu tenho alguns métodos que lançam alguma exceção, e eu quero usar AspectJ em torno de aconselhar para calcular o tempo de execução e se alguma exceção é lançada e para logar no log de erros e continuar o fluxo re-jogando a exceção.
Eu tentei conseguir isso seguindo, mas eclipse diz "tipo de exceção não tratada".
Código contra quem aspectj é usado: -
<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>
Código 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; } } </code>
Por favor, ajude por que este AspectJ não está funcionando.