Что будет в результате выполнения следующего кода?

public class Test implements Runnable {
    public static void main(String[] args) {
        Thread t = new Thread(this);
        try {
            t.start();
        } catch (IOException ioe) {
            System.out.println("IOException");
        }
    }

    public void run() throws IOException {
        File f = new File("file.txt");
        FileWriter fw = new FileWriter(f);
    }
}
Explanation
1. В static методах this недоступно.
2. IOException - это checked exception. Thread.start() не декларирует в методе throws IOException, поэтому попытка объявить в catch-блоке IOException будет ошибкой при компиляции.
3. В Runnable метод run объявлен как public abstract void run() и при этом никаких throws в декларации метода нет. Поэтому и классы реализующие этот интерфейс не могут добавлять throws объявления.

Follow CodeGalaxy

Mobile Beta

Get it on Google Play
Send Feedback
Keep exploring
Java quizzes
Cosmo
Sign Up Now
or Subscribe for future quizzes