我尝试过延迟(或休眠)我的Java程序,但是出现了一个错误。
我无法使用Thread.sleep(x)或wait()。同样的错误信息出现:
interruptedexception;必须被捕获或宣布被丢弃。
在使用Thread.sleep()或wait()方法之前,是否需要任何步骤?
我尝试过延迟(或休眠)我的Java程序,但是出现了一个错误。
我无法使用Thread.sleep(x)或wait()。同样的错误信息出现:
interruptedexception;必须被捕获或宣布被丢弃。
在使用Thread.sleep()或wait()方法之前,是否需要任何步骤?
当前回答
使用下面的编码结构来处理异常
try {
Thread.sleep(1000);
} catch (InterruptedException ie) {
//Handle exception
}
其他回答
正如其他用户所说的,你应该用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。记住,您必须添加这个捕获块。这篇文章对此作了进一步的解释。
一种更简单的等待方法是使用System.currentTimeMillis(),它返回自UTC 1970年1月1日午夜以来的毫秒数。例如,等待5秒:
public static void main(String[] args) {
//some code
long original = System.currentTimeMillis();
while (true) {
if (System.currentTimeMillis - original >= 5000) {
break;
}
}
//more code after waiting
}
这样,您就不必处理线程和异常。 希望这能有所帮助!
放置你的线程。睡在一个尝试捕捉块
try {
//thread to sleep for the specified number of milliseconds
Thread.sleep(100);
} catch ( java.lang.InterruptedException ie) {
System.out.println(ie);
}
试试这个:
try{
Thread.sleep(100);
}catch(Exception e)
{
System.out.println("Exception caught");
}