随笔 - 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这是对的!!!
错就错在:if()判断,大家都明白了吧!
希望大家以后不要因为犯了这个低级错误,而把自己的硬盘给了格了= = |||

其实,有很多方法可以避免这种错误!!!比如,你可以在f.delete(); 后面加上一句打印语句,这样的话,在你测试的时候就会发现,原来if语句后面少一个大括号…… 


这个错误写出来仅仅为了提醒大家规范的重要性!!!




 


posted on 2010-11-17 21:29 tovep 阅读(2648) 评论(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
@大山
其实,我觉得在编代码的时候遵守一定规则要比自动格式化代码好!!!
Eclipse 的自动格式化太形式话!!!  回复  更多评论
  
# re: Java_一失足成千古恨 2010-11-25 19:25 WJJ
说实话,一开始我看这程序还真没看出有啥问题, 不过一说{} 我发现,确实 是少一对 哈哈, 太崩溃了。  回复  更多评论
  
# re: Java_一失足成千古恨 2010-11-30 15:45 rrr
catch(Exception e){}
这才是最要命的,要么throw出去,要么输出异常信息

删除磁盘这种比较重量级的操作最好是先模拟一遍,确认无误再真正执行动作


  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
主页