<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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      165 隨筆 :: 17 文章 :: 90 評(píng)論 :: 0 Trackbacks

      這樣的錯(cuò)誤以前我也犯過(guò),也見(jiàn)過(guò)不少人這樣的寫(xiě)法!下面我也舉個(gè)例子:
      

     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");
      }

     }


     上面是個(gè)簡(jiǎn)單的方法,代碼中有個(gè)隱藏的bug。我在維護(hù)一個(gè)系統(tǒng)的時(shí)候就遇到類似的代碼,實(shí)際中類似的BUG隱藏
    的更深!在對(duì)系統(tǒng)業(yè)務(wù)和代碼不是很很熟悉的情況下,我推薦如下寫(xiě)法:

     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   //如果異常發(fā)生的話,content可能為空
    11   //下面對(duì)content的操作就有可能發(fā)生NullPointerException異常
    12   System.out.println(e.getMessage());
    13  }

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

    20 }


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


      希望對(duì)大家有幫助!

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

    posted on 2009-12-09 16:59 二胡 閱讀(394) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲精品亚洲人成在线麻豆| 日本成人免费在线| 亚洲永久精品ww47| 一级特黄特色的免费大片视频| 日本二区免费一片黄2019| 亚洲色大成网站www久久九| 成年午夜视频免费观看视频| 中中文字幕亚洲无线码| 青青草免费在线视频| 亚洲中文字幕日本无线码 | 免费无码作爱视频| 亚洲精品亚洲人成人网| 国内永久免费crm系统z在线| 亚洲高清专区日韩精品| 久久久久久AV无码免费网站下载| 亚洲AV无码乱码国产麻豆穿越| 午夜精品免费在线观看 | 日本人护士免费xxxx视频| 国产精品久久久久久亚洲影视| 免费在线黄色网址| 成年网在线观看免费观看网址| 亚洲人成影院在线无码按摩店| 日韩视频在线观看免费| 亚洲欧洲视频在线观看| 成人影片麻豆国产影片免费观看| 亚洲色大成网站www永久网站| 国产精品冒白浆免费视频 | 99精品在线免费观看| 亚洲午夜国产精品无卡| 午夜免费福利在线| 美女羞羞视频免费网站| 亚洲综合av永久无码精品一区二区| 国产成人久久AV免费| 亚洲综合在线一区二区三区| 亚洲人午夜射精精品日韩| 人妻无码一区二区三区免费| 亚洲欧美国产国产一区二区三区| 亚洲成年人啊啊aa在线观看| a在线免费观看视频| 亚洲韩国在线一卡二卡| 久久久久久国产a免费观看黄色大片|