1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import org.aspectj.lang.JoinPoint;
- import org.aspectj.lang.annotation.AfterThrowing;
- import org.aspectj.lang.annotation.Aspect;
-
- @Aspect
- public class AfterThrowingTest {
-
- public static void main(String[] args) {
- try {
- new B().start();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- // include "JoinPoint" in the argument list
- @AfterThrowing(pointcut = "execution(public void B.start())", throwing = "ex")
- public void handleExceptionJP(JoinPoint jp, Exception ex) {
- }
-
- // include "JoinPoint.StaticPart" in the argument list
- @AfterThrowing(pointcut = "execution(public void B.start())", throwing = "ex")
- public void handleExceptionJPSP(JoinPoint.StaticPart jp, Exception ex) {
- }
-
- // include "JoinPoint.EnclosingStaticPart" in the argument list
- @AfterThrowing(pointcut = "execution(public void B.start())", throwing = "ex")
- public void handleExceptionJPESP(JoinPoint.EnclosingStaticPart jp, Exception ex) {
- }
-
- // include "JoinPoint" and "JoinPoint.EnclosingStaticPart" in the argument list
- @AfterThrowing(pointcut = "execution(public void B.start())", throwing = "ex")
- public void handleExceptionJPESP(JoinPoint jp1, JoinPoint.EnclosingStaticPart jp, Exception ex) {
- }
-
- // make sure it still works if "JoinPoint" is second on the argument list
- @AfterThrowing(pointcut = "execution(public void B.start())", throwing = "ex")
- public void handleExceptionJP2(JoinPoint jp, Exception ex) {
- }
- }
-
- class B implements I {
- public void start() throws Exception {
- throw new IllegalArgumentException();
- }
- }
-
- interface I {
- public void start() throws Exception;
- }
|