小编Joh*_*oni的帖子

Java中的可抛出方法重写

首先,对不起我的英语不好。问题:如果我有一个子类扩展了引发CHECKED异常的方法,为什么Java允许我在子类的重写方法中抛出RuntimeException,如下例所示:

public class A {

    public void doSomething() throws FileNotFoundException {
        System.out.println("doing something...");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后...

public class B extends A {
    public void doSomething() throws RuntimeException { // <- my question
            System.out.println("doing something here too...");
    }
}
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
92
查看次数

尝试捕获与尝试资源

在为什么readFile2()我需要赶上FileNotFoundException,后来IOException由抛出的close()方法,并在try-with-resources(inside readfile1)Java不问我来处理FileNotFoundException,发生了什么?

public class TryWithResourcesTest {

    public static void main(String[] args) {

    }

    public static void readFile1() {
        try(Reader reader = new BufferedReader(new FileReader("text.txt"))) {
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void readFile2() {
        Reader reader = null;
        try {
            reader = new BufferedReader(new FileReader("text.txt"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                if(reader != null)
                reader.close();
            } catch (IOException e) …
Run Code Online (Sandbox Code Playgroud)

java exception

2
推荐指数
1
解决办法
50
查看次数

标签 统计

java ×2

exception ×1