有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java处理由两个单独语句引发的相同类型的异常

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

我想建议用户检查输入文件路径或关闭OpenExcel(或改为在记事本中打开)。我如何分别捕捉这些

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) 个答案

  1. # 1 楼答案

    您应该将代码分隔为两个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");
    }