Hi there
I have got a piece of AspectJ Code wich I cant understand the behaviour.
See:
The output of a simple throw new IllegalArgumentException("Mensagem de Ilegal Argument"); on the main method isCode:package org.exceptionhandling.aspects; import org.exceptionhandling.handle.ExceptionHandle; import org.exceptionhandling.wrap.ExceptionWrap; public aspect ExceptionHandlingInterceptor { pointcut handlers (): within(!org.exceptionhandling..*) ; Object around() : handlers() { try { return proceed(); } catch (Exception ex) { throw new RuntimeException(ex); } } }
So , that means that the advise is acting before itself, but I thought the not (!), would prevent it.Code:Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalArgumentException: Mensagem de Ilegal Argument at br.exceptionhandling.Main.main_aroundBody7$advice(Main.java:28) at br.exceptionhandling.Main.main(Main.java:1) Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalArgumentException: Mensagem de Ilegal Argument at br.exceptionhandling.Main.send_aroundBody5$advice(Main.java:28) at br.exceptionhandling.Main.main_aroundBody6(Main.java:8) at br.exceptionhandling.Main.main_aroundBody7$advice(Main.java:25) ... 1 more Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalArgumentException: Mensagem de Ilegal Argument at br.exceptionhandling.Main.send_aroundBody17$advice(Main.java:28) at br.exceptionhandling.Main.send(Main.java:1) at br.exceptionhandling.Main.send_aroundBody4(Main.java:8) at br.exceptionhandling.Main.send_aroundBody5$advice(Main.java:25) ... 3 more Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalArgumentException: Mensagem de Ilegal Argument at br.exceptionhandling.Main.ilegalArgument_aroundBody11$advice(Main.java:28) at br.exceptionhandling.Main.send_aroundBody16(Main.java:15) at br.exceptionhandling.Main.send_aroundBody17$advice(Main.java:25) ... 6 more Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Mensagem de Ilegal Argument at br.exceptionhandling.ExceptionFactory.ilegalArgument_aroundBody5$advice(ExceptionFactory.java:28) at br.exceptionhandling.ExceptionFactory.ilegalArgument(ExceptionFactory.java:1) at br.exceptionhandling.Main.ilegalArgument_aroundBody10(Main.java:15) at br.exceptionhandling.Main.ilegalArgument_aroundBody11$advice(Main.java:25) ... 8 more Caused by: java.lang.IllegalArgumentException: Mensagem de Ilegal Argument at br.exceptionhandling.ExceptionFactory.init$_aroundBody2(ExceptionFactory.java:6) at br.exceptionhandling.ExceptionFactory.init$_aroundBody3$advice(ExceptionFactory.java:25) at br.exceptionhandling.ExceptionFactory.ilegalArgument_aroundBody4(ExceptionFactory.java:6) at br.exceptionhandling.ExceptionFactory.ilegalArgument_aroundBody5$advice(ExceptionFactory.java:25) ... 11 more
What am I missing?
Thanks a lot!


Reply With Quote