没有严谨的判断,让我付出了代价!!

来源:互联网 发布:智慧记进销存软件 编辑:程序博客网 时间:2024/05/01 15:10

       明天彩铃业务升级,今天是要和BOSS联调(BOSS是亚信的记费系统,据说国内做的最好的一家)。一个涉及到计费模块需求,从我公司网站发起的彩铃注册用户计费要到BOSS,和BOSS交互的协议使用的是FTP协议,使用话单接口机进行同步数据;

       将程序代码提前两天搞定,进行了内部的模拟测试!让一个兄弟也帮忙测试了一把,其实我的测试很简单,测试用例自己定义,想到的就测试,没有想到上线更正(当然很不负责任的,没有办法,人力不够啊);进行了简单的内部测试,感觉万事大吉了!可没有想到,也就是今天要和BOSS进行了联调,却发现了一个严重的BUG,BOSS处理完注册用户的数据,返回的话单结果要与我们系统同步,我们的系统虽然通过FTP将话单结果取到本机上,可怎么也处理不了话单!处理话单我设计的程序是通过一个任务类定时扫描从FTP取到数据,可任务类仅仅是在系统启动时运行了一次,而后都没有去运行!我当时在想可能是由于我使用了内部类,因为我对内部类不是很熟悉,这次是尝新鲜,可是内部测试既然没有问题,我跟踪了代码,问题不在这里!通过日志我发现我犯了一个极大的错误,当时的代码是这样的:

       BufferReader mybr = null;

       File   file = null;

      for(int i=0;i<filelist.size();i++){

         file = file.get(i);

      ..............

    ........ 

}

try{

      mybr.close();

}

catch(IOExceptoin io){

  LogManager.log("read data ioexcepton");

  e.printStrack();

}

filelist 是目录下所有的文件列表,我想各位已经看出让过filelist没有文件,这个程序要抛出空指针异常,因为我本身只是将mybr定义了一个句柄对象,而本身没有实例话,在当filelist没有文件,直接执行mybr.close();空指针是肯定的,这少了一句判断的代码,差点惊动整个公司的领导,因为明天正式割接上线,而现在程序还在调试中,直接领导对我大发脾气!郁闷中,草草记录今天的心情

 思维严谨,代码规范!与路过人共勉