23

我是 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”

4

2 回答 2

55

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

有关的

于 2012-12-22T18:49:27.340 回答
-4

你可以摆脱第一行。你不需要import java.lang.*;

只需将您的第 5 行更改为:

public static void main(String [] args) throws Exception
于 2016-01-23T06:24:35.670 回答