隨筆 - 20  文章 - 57  trackbacks - 0
          <2010年11月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          51CTO

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          經過一個多月的Java學習,我們慢慢深入了解了Java中的一些比較高級的方法!但這些方法在你調試的時候一定要慎重!!不要等待失去了整個硬盤,才后悔莫及?。?! 如果你在編程的時候多長個心眼,這些小的錯誤是可以避免的?。?!


          下面我們來看一下一個讓人很崩潰的錯誤,這個錯誤讓我感到不可思議??!代碼如下:

          import java.io.File;

          public class KillBackServer {
           
           public static void main(String[] args){
            File f = new File("C:\\");
            fun(f);
           }
           
          //定義一個靜態函數,用來實現對一盤文件的遍歷
           public static void fun(File f)
              {
             if(f.isDirectory())
              {
                File file[] = f.listFiles();
                try
                {
                  for(int i = 0 ; i <file.length ; i++)
                  {
                       fun(file[i]);
                  }
                }
                       catch(Exception e){}
              }
             else
             {
                  if("我是病毒.exe".equals(f.getName()))                                           
                         System.out.println(f);
                         //僅僅當程序找到"我是病毒.exe"的 時候才執行這一句代碼                            
                         //f.delete();                                                   
                         System.out.println("該病毒已被查殺");}  
                         System.out.println(f.getPath() + "***********************");                    
              }
           
           }

          }
           

          大家一定要注意紅色字體的代碼?。?!我之所以注釋了,就是怕直接復制我的代碼,然后運行…… 
          如果這樣后果你是知道的……


           本來這段代碼是用來掃描C盤,找到"我是病毒.exe"文件,并把它刪除,判斷一個文件名,用的是equals這是對的?。。?br /> 錯就錯在:if()判斷,大家都明白了吧!
          希望大家以后不要因為犯了這個低級錯誤,而把自己的硬盤給了格了= = |||

          其實,有很多方法可以避免這種錯誤!??!比如,你可以在f.delete(); 后面加上一句打印語句,這樣的話,在你測試的時候就會發現,原來if語句后面少一個大括號…… 


          這個錯誤寫出來僅僅為了提醒大家規范的重要性!!!




           


          posted on 2010-11-17 21:29 tovep 閱讀(2683) 評論(16)  編輯  收藏

          FeedBack:
          # re: Java_一失足成千古恨 2010-11-17 21:55 來了
          無語  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-17 23:21 blackbat
          編碼格式規范就可以避免這個問題啊
          if(){
          ...
          }
          加上括弧就知道  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-18 00:37 Tovep
          @來了
          是??!這個錯誤真的很讓人無語……  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-18 00:39 Tovep
          @blackbat
          正如我們老師說的:規范比能力還要重要,現在終于明白了……  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-18 08:17 xhiyu
          進到第PE系統,恢復刪除的數據。之前的數據一般都可以找回來。  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-18 09:27 Tovep
          @xhiyu
          在PE中可以用easyrecoveryprofessional嗎?  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-18 10:04 xiaoxin5230
          不管什么時候都要加空格,java編程規范里面有的  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-18 16:55 Tovep
          @xiaoxin5230
          在Java中加入空格的作用是讓程序更有層次!??!
          如果程序的層次感很好的話,如果代碼有錯誤,找錯誤也比較容易的……、
          總之,好處很多的
            回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-18 17:40 isaac
          這是一個弱智的錯誤。
          根本原因有二
          1.不遵守使用{}的規范。
          2.代碼格式化不好。  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-18 17:57 Lu Han
          怎么會犯這樣的錯誤?
          你的弱碼告訴了我,沒有什么不可能!  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-19 10:11 Tovep
          @isaac
          不遵守{}規范,這個我知道??!
          代碼格式化不好——是什么意思啊?
          是不是一般不要寫一些格式化的代碼?。?!  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-19 10:14 Tovep
          @Lu Han
          我同學讓我看看他的代碼,怎么回事?怎么一運行電腦就沒系統了!我才發現這個低級錯誤!??!不過我覺得好多事都敗在細節上?。∷詫懗鰜硖嵝汛蠹乙幌拢?!  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-19 23:25 大山
          用eclipse,自動格式化代碼就能解決這個問題  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-20 18:12 Tovep
          @大山
          其實,我覺得在編代碼的時候遵守一定規則要比自動格式化代碼好?。。?br>Eclipse 的自動格式化太形式話?。?!  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-25 19:25 WJJ
          說實話,一開始我看這程序還真沒看出有啥問題, 不過一說{} 我發現,確實 是少一對 哈哈, 太崩潰了。  回復  更多評論
            
          # re: Java_一失足成千古恨 2010-11-30 15:45 rrr
          catch(Exception e){}
          這才是最要命的,要么throw出去,要么輸出異常信息

          刪除磁盤這種比較重量級的操作最好是先模擬一遍,確認無誤再真正執行動作


            回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主頁 主站蜘蛛池模板: 德江县| 威信县| 金塔县| 博客| 中西区| 墨玉县| 筠连县| 莱阳市| 那坡县| 都江堰市| 钟祥市| 资阳市| 海城市| 延吉市| 博罗县| 沅陵县| 钟祥市| 荥阳市| 眉山市| 冷水江市| 玉树县| 渭源县| 平江县| 石台县| 原平市| 伊金霍洛旗| 大兴区| 都匀市| 五大连池市| 富顺县| 登封市| 沙田区| 寿光市| 陕西省| 海安县| 湄潭县| 皋兰县| 乌兰察布市| 揭东县| 揭阳市| 罗田县|