Обработка исключений одного типа, выданных двумя отдельными операторами - PullRequest
0 голосов
/ 14 февраля 2019

Ниже приведен фрагмент кода, выдающий ошибку 1. Когда путь к входному файлу неверен - FILENOTFOUNDEXCEPTION 2. Когда выходной файл открыт в Excel - FILENOTFOUNDEXCEPTION, говоря, что указанный файл открыт в другом процессе

Я хочу предложить пользователю либопроверьте путь к входному файлу или закройте open excel (или откройте в блокноте).Как мне поймать их отдельно?

try(FileReader fr = new FileReader("D:/Test.log");
            BufferedReader br = new BufferedReader(fr);) {      

        doSomething(br);

        //writing to CSV
        String[]  arr = {"aaa","bbb"};
        FileWriter outputfile= new 
        FileWriter("D:/output.csv",false); 
        CSVWriter writer = new CSVWriter(outputfile); 
            writer.writeNext(arr);
            writer.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

1 Ответ

0 голосов
/ 14 февраля 2019

Вы должны разделить код на две инструкции try / cath

BufferedReader br;
try {
    FileReader fr = new FileReader("D:/Test.log");
    br = new BufferedReader(fr);
} catch (FileNotFoundException e) {
    e.printStackTrace();
    log.error("Input file not found");
} catch (IOException e) {
    e.printStackTrace();
}

doSomething(br);

//writing to CSV
String[]  arr = {"aaa","bbb"};

try {
    FileWriteroutputfile = new FileWriter("D:/output.csv",false);
    CSVWriter writer = new CSVWriter(outputfile);
    writer.writeNext(arr);
    writer.close();
} catch (IOException e) {
    e.printStackTrace();
    log.error("Output file already in use");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...