FINDBUGS错误: OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE

来源:互联网 发布:遗传算法的过程 编辑:程序博客网 时间:2024/06/06 05:37

拷贝文件的函数,之前的写法:

039   // 复制文件
040   public static void copyfile(File from, String tothrows Exception {
041     FileInputStream srcIn = null;
042     FileOutputStream destOut = null;
043     try {
044       srcIn = new FileInputStream(from);

045       destOut = new FileOutputStream(to);
046       byte[] buff = new byte[1024];
047       int len;
048       while (-!= (len = srcIn.read(buff))) {
049         destOut.write(buff, 0, len);
050       }
051 
052     catch (Exception e) {
053       throw e;
054     finally {
055       try {
056         if (null != srcIn)
057           srcIn.close();
058       catch (IOException e) {
059         throw e;
060       }
061       try {
062         if (null != destOut)
063           destOut.close();
064       catch (IOException e) {
065         throw e;
066       }
067     }
068   }

一直报错,原因是srcIn关闭异常之后,如何destOut可能就关闭失败。


// 复制文件public static void copyfile(File from, String to) throws Exception {   FileInputStream srcIn = null;   FileOutputStream destOut = null;   try {      srcIn = new FileInputStream(from);      destOut = new FileOutputStream(to);      byte[] buff = new byte[1024];      int len;      while (-1 != (len = srcIn.read(buff))) {         destOut.write(buff, 0, len);      }      destOut.close();   } finally {      try {         if (null != destOut) {            destOut.close();         }      }finally {         if (null != srcIn) {            srcIn.close();         }      }   }}


0 0