2012-03-15 77 views
0

假设我们需要处理100个文件(一个接一个),并且如果我们在读取其中一个文件时遇到异常,则进程应该保留该文件(并将内容放入日志中)并开始处理下一个文件文件:文件处理异常

我想什么:

for (File f: listOfFiles) { 
    try { 
     //implementation of processing each file 
    } catch (Exception e) { 
     //logging 
    } 
}​ 

,对吗?

回答

3

是的,应该工作。但是,您也可能希望在捕获异常时更具体。

+0

+1为“是”,顺便说一句你是什么意思*更具体的捕捉异常*? – Rakesh 2012-03-15 05:40:28

+1

不要只看到“例外”一见钟情。分析你的代码可能抛出哪些异常,并按照正确的顺序捕捉它们,并分别处理它们。 – 2012-03-15 05:52:44

+0

好!我正在寻找另一个角度..! – Rakesh 2012-03-15 06:10:20

1

是的!你是正确的,并在终止块中放置一些代码。我的意思是关闭任何流或关闭文件本身。类似于下面的伪代码。

for(File f : listOfFiles){ 
    try{ 
     //implementation of processing each file 
    }catch(Exception e){ 
     logException(e); 
    }finally{ 
     //close stream or file. 
    } 
}