2012-03-15 6 views
0

Предположим, нам нужно обработать 100 файлов (один за другим), и если мы получим исключение при чтении одного из файлов, процесс должен оставить этот файл (и поместить содержимое в журнал) и начать обработку следующего файл:Исключение в обработке файлов

То, что я думаю:

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

Я правильно?

ответ

3

Да, должно работать. Но вы также можете захотеть быть более конкретным в выборе Exception.

+0

+1 для «Да», BTW Что вы подразумеваете под * более конкретно в ловле Исключение * ?? – Rakesh

+1

Не просто поймайте «Исключение» с первого взгляда. Проанализируйте, какие исключения могут быть брошены вашим кодом и поймать их в правильном порядке, и разобраться с ними отдельно. –

+0

Хорошо! Я смотрел в другой перспективе ..! – Rakesh

1

Да! Вы правы и поместите некоторый код в блок finally. Я имею в виду закрытие любого потока или самого закрывающего файла. Подобно ниже псевдокоду.

for(File f : listOfFiles){ 
    try{ 
     //implementation of processing each file 
    }catch(Exception e){ 
     logException(e); 
    }finally{ 
     //close stream or file. 
    } 
} 
Смежные вопросы