• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 測試技術
    • 博客
    • 視頻
    • 開源
    • 論壇
    • 沙龍
    • 下載
    • 雜志
    • 招聘

    字號: | 推薦給好友 上一篇 | 下一篇

    追求代碼質量: 用 AOP 進行防御性編程

    發布: 2008-6-13 14:39 | 作者: 不詳 | 來源: 領測軟件測試網編輯整理 | 查看: 30次 | 進入領測軟件測試網論壇討論

    領測軟件測試網 軟件測試技術第一門戶yo^vX A"^~k

    "s0f#baybi9d)M0@-En軟件測試技術第一門戶a1M(t?"A@-p Si

    關于靜態分析軟件測試技術第一門戶.^cR[S
    軟件測試技術第一門戶PFz$s|W'|,F%`A+XE

    諸如 FindBugs 等靜態分析工具通過將字節碼和一系列 bug 模式相匹配來檢驗類或 JAR 文件從而尋找潛在問題。針對樣例的代碼運行 FindBugs 不會 揭示出清單 1 中找到的 NullPointerException。

    5g\L)c ]P@I2L
    軟件測試技術第一門戶j$dCx1t_

    防御性編程軟件測試技術第一門戶['w i#{-Q;h{

    c|/HE"?7k7bN一旦出現這個問題,下一步就是要拿出對抗的策略。問題是我控制不了這個方法能否接收這種輸入。對于這類問題,開發人員通常會使用防御性編程技術,該技術專門用來在發生摧毀性后果前捕捉潛在錯誤。軟件測試技術第一門戶3X7c}`1|

    Z7\-~*Wf!r4S?M對象驗證是處理不確定性的一項經典的防御性編程策略。相應地,我會添加一項檢驗來驗證 clzz 是否為 null,如清單 3 所示。如果其值最終為 null,我就會拋出一個 RuntimeException 來警告他人注意這個潛在問題。

    K7zlA(G4~
    )x,U wu:pM清單 3. 添加驗證 null 值的檢驗 軟件測試技術第一門戶(v3Am/J9p/Uu(Oeo
    public static Hierarchy buildHierarchy(Class clzz){
     
     if(clzz == null){
      throw new RuntimeException("Class parameter can not be null");
     }
    
     Hierarchy hier = new Hierarchy();
     hier.setBaseClass(clzz);
    
     Class superclass = clzz.getSuperclass();
    
     if(superclass != null && superclass.getName().equals("java.lang.Object")){
      return hier; 
     }else{      
      while((clzz.getSuperclass() != null) && 
        (!clzz.getSuperclass().getName().equals("java.lang.Object"))){
         clzz = clzz.getSuperclass();
         hier.addClass(clzz);
      }	        
      return hier;
     }
    }     

    v-M&Us E 老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>