处理由两个单独语句抛出的相同类型的异常

问题描述 投票:-1回答:1

下面的代码片段引发错误1.当输入文件路径无效时 - FILENOTFOUNDEXCEPTION 2.当输出文件在excel中打开时 - FILENOTFOUNDEXCEPTION说该文件在另一个进程中打开

我想建议用户检查输入文件路径或关闭打开的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();
        }
java exception-handling
1个回答
0
投票

您应该将代码分隔为两个try / catch语句

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");
}
© www.soinside.com 2019 - 2024. All rights reserved.