Подтвердить что ты не робот

Как исправить ошибку компиляции для необработанного исключения при вызове Thread.sleep()?

Я новичок в Java и новичок в программировании (я знаю, что дайвинг прямо в Java, вероятно, не был самой большой идеей.) И я получал ошибку последовательно независимо от того, как я пытаюсь добавить паузу в своем программа. Я делаю простую программу подсчета и хочу добавить одну секунду задержки между каждым номером, вот код, который у меня есть до сих пор:

import java.lang.*;

public class Counter
{
    public static void main(String[]args)
    {
        int i;

        for (i = 0; i <= 10; i++)
        {
            Thread.sleep(1000);
            System.out.println(i);
        }
        System.out.println("You can count to ten.");
    }
}

Вызов Thread.sleep() не будет компилироваться. Компилятор javac говорит: "незарегистрированное исключение InterruptedException: должно быть поймано или объявлено, что оно будет выброшено", а Eclipse говорит: "Необработанный тип исключения InterruptedException"

4b9b3361

Ответ 1

Thread.sleep может вызывать исключение InterruptedException, которое является проверенным исключением. Все проверенные исключения должны быть пойманы и обработаны, иначе вы должны заявить, что ваш метод может его выбросить. Вам нужно сделать это независимо от того, будет ли исключение действительно выбрано. Не объявлять проверенное исключение, которое может использовать ваш метод, является ошибкой компиляции.

Вам либо нужно поймать его:

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    e.printStackTrace();
    // handle the exception...        
    // For example consider calling Thread.currentThread().interrupt(); here.
}

Или объявите, что ваш метод может вызвать InterruptedException:

public static void main(String[]args) throws InterruptedException

Похожие

Ответ 2

Вы можете избавиться от первой строки. Вам не нужно import java.lang.*;

Просто измените 5-ю строку на:

public static void main(String [] args) throws Exception