<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0

    使用handler(TypePattern)切入點。語法:
    pointcut <pointcut name>(<any values to be picked uo>) : handler(<class>) ;
    handler(TypePattern)切入點只支持vbefore()形式的通知。這意味著不能使用像around()這樣的通知來重寫catch塊的正常行為。

    public aspect HandlerRecipe {
     pointcut myExceptionHandlerPointcut() : handler(ServiceException);
     before() : myExceptionHandlerPointcut() {
      System.out.println("------------ Aspect Advice Logic --------------");
      System.out.println("Signature: " + thisJoinPoint.getStaticPart().getSignature());
      System.out.println("Source Line: " + thisJoinPoint.getStaticPart().getSourceLocation());
      System.out.println("-----------------------------------------------");
     }
    }


    public class ServiceException extends Exception {

     /**
      * Create a new ServiceException with the specified message.
      * @param msg the detail message
      */
     public ServiceException(String msg) {
      super(msg);
     }

     /**
      * Create a new ServiceException with the specified message
      * and root cause.
      * @param msg the detail message
      * @param ex the root cause
      */
     public ServiceException(String msg, Throwable ex) {
      super(msg, ex);
     }
    }

    public class ExceptionClass {

     public void triggerMyException() throws ServiceException
        {
      ServiceException myException = new ServiceException("A service exception has occured");
           System.out.println("About to throw a ServiceException");
           throw myException;
        }
     /**
      * @param args
      */
     public static void main(String[] args) {
      ExceptionClass myObject = new ExceptionClass();
       try
           {
              myObject.triggerMyException();
           } catch (ServiceException me)
           {
              System.out.println("A ServiceException has been caught");
           }
     }

    }

    運行結(jié)果:
    About to throw a ServiceException
    ------------ Aspect Advice Logic --------------
    Signature: catch(ServiceException)
    Source Line: ExceptionClass.java:19
    -----------------------------------------------
    A ServiceException has been caught

    獲取拋出的異常
    public aspect HandlerRecipe {
     pointcut myExceptionHandlerPointcut(ServiceException exception) : handler(ServiceException) && args(exception);
     before(ServiceException exception) : myExceptionHandlerPointcut(exception) {
      System.out.println("------------ Aspect Advice Logic --------------");
      System.out.println("Signature: " + thisJoinPoint.getStaticPart().getSignature());
      System.out.println("Source Line: " + thisJoinPoint.getStaticPart().getSourceLocation());
      System.out.println("Exception caught:");
      exception.printStackTrace();
      System.out.println("-----------------------------------------------");
     }
    }

    posted on 2007-07-03 16:32 周銳 閱讀(307) 評論(0)  編輯  收藏 所屬分類: AspectJ
    主站蜘蛛池模板: 久久精品蜜芽亚洲国产AV| 亚洲精品国产综合久久一线| 亚洲欧洲日韩国产综合在线二区| 中文在线日本免费永久18近| 亚洲精品第一国产综合精品99| 无码 免费 国产在线观看91| 亚洲情a成黄在线观看| 日本一区二区三区在线视频观看免费 | 亚洲国产精品一区二区九九| 免费看美女午夜大片| 亚洲国产精品日韩专区AV| 精品乱子伦一区二区三区高清免费播放 | 日韩a毛片免费观看| 亚洲人成无码网WWW| 在线观看免费黄色网址| 亚洲AV无码1区2区久久| 久久久久久精品成人免费图片| 亚洲免费一级视频| 成人免费无码大片a毛片软件| 欧美激情综合亚洲一二区| 亚洲毛片不卡av在线播放一区| 三级黄色在线免费观看| 亚洲欧洲日韩综合| 日韩一级在线播放免费观看| 一级毛片免费在线| 久久亚洲AV成人无码国产| 欧洲精品成人免费视频在线观看 | 亚洲国产精品综合久久20| 国产一级特黄高清免费大片| 国产精品成人免费观看| 亚洲国产中文在线二区三区免| 日韩免费高清一级毛片在线| rh男男车车的车车免费网站| 亚洲资源在线视频| 国产免费无遮挡精品视频| 99久久免费国产精精品| 国产精品亚洲午夜一区二区三区| 亚洲国产成人乱码精品女人久久久不卡 | 亚洲成AV人片在| 在线观看免费大黄网站| 91免费国产视频|