我是 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”
最佳答案
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
相关
关于java - 如何修复调用 Thread.sleep() 时未处理异常的编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005549/