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

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

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

    憨厚生

    ----Java's Slave----
    ***Java's Host***

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks

      這樣的錯誤以前我也犯過,也見過不少人這樣的寫法!下面我也舉個例子:
      

     public void writeFile(File f) {
      String content 
    = null;
      
    try {
       
    byte[] b = new byte[1024];
       FileInputStream in 
    = new FileInputStream(f);
       in.read(b);
       content 
    = new String(b);
      }
     catch (Exception e) {
       System.out.println(e.getMessage());
      }


      
    if (content.indexOf("hello"> -1{
       System.out.println(
    "yes");
      }
     else {
       System.out.println(
    "no");
      }

     }


     上面是個簡單的方法,代碼中有個隱藏的bug。我在維護一個系統的時候就遇到類似的代碼,實際中類似的BUG隱藏
    的更深!在對系統業務和代碼不是很很熟悉的情況下,我推薦如下寫法:

     1 public void writeFile(File f) {
     2  String content = null;
     3  try {
     4   byte[] b = new byte[1024];
     5   FileInputStream in = new FileInputStream(f);
     6   in.read(b);
     7   content = new String(b);
     8  }
     catch (Exception e) {
     9   content="";
    10   //如果異常發生的話,content可能為空
    11   //下面對content的操作就有可能發生NullPointerException異常
    12   System.out.println(e.getMessage());
    13  }

    14  //下面操作有可能發生NullPointerException異常
    15  if (content.indexOf("hello"> -1{
    16   System.out.println("yes");
    17  }
     else {
    18   System.out.println("no");
    19  }

    20 }


     一般來說異常處理不推薦直接system.out.println打印出來!
     幾條建議:
     如果無法處理某個異常,那就不要捕獲它。
      ☆ 如果捕獲了一個異常,請不要胡亂處理它。
      ☆ 盡量在靠近異常被拋出的地方捕獲異常。
      ☆ 在捕獲異常的地方將它記錄到日志中,除非您打算將它重新拋出。
      ☆ 按照您的異常處理必須多精細來構造您的方法。
      ☆ 需要用幾種類型的異常就用幾種,尤其是對于應用程序異常。
      ☆ 把低層次的異常封裝成層次較高程序員較容易理解的異常。
      ☆ 盡量輸出造成異常的完整數據
      ☆ 盡量捕獲具有特定含義的異常:比如SqlException,而不是簡單地捕獲一個Exception


      希望對大家有幫助!

    參考:
    http://www.tkk7.com/usherlight/archive/2006/10/23/76782.html

    posted on 2009-12-09 16:59 二胡 閱讀(401) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲伊人久久大香线蕉综合图片| 亚洲国产精品免费观看| 特级一级毛片免费看| 一个人看的www免费在线视频| 夫妻免费无码V看片| 免费观看大片毛片| 亚洲人成亚洲人成在线观看 | 亚洲成a人片在线观看无码 | 久久精品国产精品亚洲艾草网美妙| 在线亚洲精品福利网址导航| 色爽黄1000部免费软件下载| 亚洲人成无码久久电影网站| 国产VA免费精品高清在线| 日韩毛片免费无码无毒视频观看| 亚洲中文字幕无码日韩| a级成人免费毛片完整版| 无码久久精品国产亚洲Av影片| 99re在线精品视频免费| 亚洲国产日产无码精品| 中文字幕永久免费| 亚洲av片劲爆在线观看| 国产福利视精品永久免费| 亚洲综合网站色欲色欲| 国产真人无码作爱视频免费| 亚洲欧洲综合在线| 韩日电影在线播放免费版| 亚洲综合无码一区二区| 羞羞视频免费观看| 亚洲精品无码国产| 成人免费AA片在线观看| 日日摸日日碰夜夜爽亚洲| 亚洲性线免费观看视频成熟| 在线观看亚洲专区| 午夜a级成人免费毛片| 免费无码一区二区| 亚洲一区二区电影| 免费观看一级毛片| baoyu122.永久免费视频| 亚洲人成电影在线观看网| 亚洲高清成人一区二区三区| 亚洲AV性色在线观看|