黑马程序员技术交流社区

标题: 出现异常,或抛或处理,如果处理该怎么处理 [打印本页]

作者: clh    时间: 2014-9-12 13:19
标题: 出现异常,或抛或处理,如果处理该怎么处理
  1. import java.io.*;
  2. import java.util.*;



  3. class  JavaFileList
  4. {
  5.         public static void main(String[] args) throws IOException
  6.         {
  7.                 File dir = new File("F:\\java\\abc");

  8.                 List<File> list =new ArrayList<File>();

  9.                 fileToList(dir,list);

  10.                 System.out.print(list.size());
  11.                
  12.                 File file =new File(dir,"javalist.txt");
  13.                 writeToFile(list,file.toString());

  14.         }

  15.         public static void fileToList(File dir,List<File> list)
  16.         {
  17.                 File[] files = dir.listFiles();

  18.                 for(File file : files)          //遍历文件,若果是文件目录就继续遍历,否则找出.java结尾的文件,存到列表中去
  19.                 {
  20.                         if(file.isDirectory())
  21.                                 fileToList(file,list);
  22.                         else
  23.                                 if(file.getName().endsWith(".java"));
  24.                                         list.add(file);
  25.                 }
  26.         }

  27.         public static void writeToFile(List<File> list,String javaListFile) throws IOException        //把获得的文件列表写入文档中区
  28.         {
  29.                 BufferedWriter bufw = null;
  30.                 try
  31.                 {
  32.                         bufw = new BufferedWriter(new FileWriter(javaListFile)) ;//搞一个流对象,并关联文件
  33.                                
  34.                         for(File f:list)
  35.                         {
  36.                                 String path = f.getAbsolutePath();
  37.                                 bufw.write(path);
  38.                                 bufw.newLine();
  39.                                 bufw.flush();
  40.                         }


  41.                 }
  42.                 catch (IOException e)
  43.                 {
  44.                         throw e;//如果处理,怎么处理
  45.                 }
  46.                 finally
  47.                 {
  48.                         try
  49.                         {
  50.                                 if(bufw!=null)   //如果文件流不为空就关闭
  51.                                         bufw.close();
  52.                         }
  53.                         catch (IOException e)
  54.                         {
  55.                                 throw e;//如果处理,怎么处理
  56.                         }
  57.                 }
  58.         }
  59. }
复制代码
如题,代码中要处理的地方该怎么处理啊,给点思路,或举个例子什么的

作者: 苏乞儿    时间: 2014-9-13 01:11
不是都是RuntimeException了吗,让程序停下来了吗?
作者: 雪碧拌米饭    时间: 2014-9-13 01:22
遇到的问题不一样,处理方式也不一样吧,这个代码应该不少吧?
作者: clh    时间: 2014-9-13 01:27
苏乞儿 发表于 2014-9-13 01:11
不是都是RuntimeException了吗,让程序停下来了吗?

什么意思
作者: 苏乞儿    时间: 2014-9-13 02:01
clh 发表于 2014-9-13 01:27
什么意思

我也是初学者,只会照葫芦画瓢,像这种复制文件的操作,如果发生异常,基本上就不用处理了直接抛RuntimeException异常,让程序停下来就行了。。RuntimeException是运行时异常时不需要处理的,JVM直接让程序停止,让程序员修改代码的。所以我感觉直接throw new RuntimeException(“复制失败!”)
作者: clh    时间: 2014-9-13 09:09
苏乞儿 发表于 2014-9-13 02:01
我也是初学者,只会照葫芦画瓢,像这种复制文件的操作,如果发生异常,基本上就不用处理了直接抛RuntimeE ...

明白了,谢谢,我还得在多看看
作者: 家进    时间: 2014-9-13 10:42
clh 发表于 2014-9-13 09:09
明白了,谢谢,我还得在多看看

楼主别信他,RuntimeException说明程序有BUG,不应该抛出这种异常,而是应该找出问题原因避免之。
你的数组下标引发的错误,算术异常等,是在我们控制范围内的异常,应该把时间花在修正程序上,
而不是说明这些这些错误发生的可能性。
作者: clh    时间: 2014-9-13 11:27
家进 发表于 2014-9-13 10:42
楼主别信他,RuntimeException说明程序有BUG,不应该抛出这种异常,而是应该找出问题原因避免之。
你的数 ...

什么意思啊,是说自己修改代码,让他没有异常么而不是抛出RunTimeException?
作者: 家进    时间: 2014-9-13 11:43
clh 发表于 2014-9-13 11:27
什么意思啊,是说自己修改代码,让他没有异常么而不是抛出RunTimeException?

RunTimeException这个异常是可以避免的,能够避免的异常就要避免,不能避免的就考虑try/catch处理,处理不了就把它抛出去吧
作者: clh    时间: 2014-9-13 12:12
家进 发表于 2014-9-13 11:43
RunTimeException这个异常是可以避免的,能够避免的异常就要避免,不能避免的就考虑try/catch处理,处理 ...

恩、、、、、、、




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2