使用Thread.sleep(x)或wait()时我会得到异常

我试图拖延 - 或者让我睡觉 - 我的Java程序,但发生错误。

我无法使用Thread.sleep(x)wait() 。 出现相同的错误消息:

未报告的异常java.lang.InterruptedException; 必须被捕获或宣布被抛出。

在使用Thread.sleep()wait()方法之前是否需要执行任何步骤?


你有很多的阅读。 从编译器错误到异常处理,线程和线程中断。 但是这会做你想做的事情:

try {
    Thread.sleep(1000);                 //1000 milliseconds is one second.
} catch(InterruptedException ex) {
    Thread.currentThread().interrupt();
}

正如其他用户所说,您应该用try{...} catch{...}块来包围您的呼叫。 但是自Java 1.5发布以来,TimeUnit类与Thread.sleep(millis)相同,但更方便。 你可以选择时间单位进行睡眠操作。

try {
    TimeUnit.NANOSECONDS.sleep(100);
    TimeUnit.MICROSECONDS.sleep(100);
    TimeUnit.MILLISECONDS.sleep(100);
    TimeUnit.SECONDS.sleep(100);
    TimeUnit.MINUTES.sleep(100);
    TimeUnit.HOURS.sleep(100);
    TimeUnit.DAYS.sleep(100);
} catch (InterruptedException e) {
    //Handle exception
}

还有其他方法:TimeUnit Oracle文档


看看这个优秀的简短文章,了解如何正确执行此操作。

基本上:捕获InterruptedException 。 请记住,您必须添加此catch-block。 这篇文章进一步解释了这一点。

链接地址: http://www.djcxy.com/p/92143.html

上一篇: I get exception when using Thread.sleep(x) or wait()

下一篇: Provide the details about wait and sleep in java