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

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 объявления.

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты