如何解决的未处理的异常编译错误上调用Thread.sleep()方法?(How do I fix a

2019-07-17 12:26发布

我是新来的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的”

Answer 1:

了Thread.sleep可以抛出一个InterruptedException这是一个检查异常。 所有检查的异常必须被捕获并处理,否则,您必须声明你的方法把它扔了。 你需要做此事件是否异常居然会被抛出。 不声明checked异常,你的方法可以抛出一个编译错误。

您可能需要抓住它:

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抛出InterruptedException?
  • Java理论与实践:用InterruptedException的处理


Answer 2:

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

只要改变你的5日线:

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


文章来源: How do I fix a compilation error for unhandled exception on call to Thread.sleep()?