我得到"未报告的异常ioexception;必须保持或宣布被扔掉#34;

时间:2017-11-23 14:23:12

标签: java regex exception try-catch

我收到的错误是"未报告的异常ioexception;必须保持或宣布被扔掉#34;它是提供的路径或try-catch块中的错误。

import java.io.*;
import java.util.regex.*;

class RegexMobileExtractor {

    public static void main(String[] args) {
        try {
            Pattern p = Pattern.compile("(0|9)?[7-9][0-9]{9}");
            PrintWriter pw = new PrintWriter("C:\\Users\\HP\\Desktop\\CODE\\JAVA_EX\\copy\\output.txt");
            BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\HP\\Desktop\\CODE\\JAVA_EX\\copy\\input.txt"));

            //PrintWriter pw = new PrintWriter("output.txt");
            //BufferedReader br = new BufferedReader(new FileReader("input.txt"));

            String line = br.readLine();
            while( line!= null) {
                Matcher m = p.matcher(line);
                while(m.find()) {
                    pw.println(m.group());
                }

                line = br.readLine();
            }

            pw.flush();
            pw.close();
            //br.close();
        } catch (FileNotFoundException obj) {
            System.out.println("errr occured");
        }
    }
}

2 个答案:

答案 0 :(得分:1)

这行代码:br.readLine();可能会抛出IOException。这是chacked exception并且编译器强制您处理它,这就是为什么您必须添加额外的catch块:

catch (IOException e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

更改行

} catch (IOException obj) {
    System.out.println("errr occured");
}

map2_if

由于IOExceptionFileNotFoundException类的父级,因此您将处理这两种异常。

另外,请考虑使用会自动关闭文件的try-with-resources