Cómo volver a lanzar excepción en AspectJ alrededor de asesoramiento
Tengo algunos métodos que arrojan algunas excepciones, y quiero usar AspectJ para recomendar el cálculo del tiempo de ejecución y, si se produce alguna excepción, iniciar sesión en el registro de errores y continuar el flujo volviendo a lanzar la excepción.
Intenté lograr esto siguiendo, pero eclipse dice "Tipo de excepción no controlada".
Código contra el cual se utilizará aspectj:
<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 ayuda por qué este AspectJ no está funcionando.