我花了好几个小时试图解决这个问题;我是Java新手,我似乎无法找出为什么java Thread函数抛出异常错误。任何人都可以向我解释这一点。
import java.util.Calendar;
import java.util.Date;
public class Loops {
public static void main(String [] args) {
Date today = new Date();
System.out.println(today);
Calendar cal = Calendar.getInstance();
cal.set(2015, 1, 1, 0, 3, 0);
while (today.before(cal.getTime()))
{
System.out.println("Waiting");
Thread.sleep(1000);
today = new Date();
System.out.println(today);
}
System.out.println("Done");
}
}
答案 0 :(得分:1)
查看Thread.java
API,方法sleep();
会抛出异常。
public static native void sleep(long millis) throws InterruptedException;
因此需要catch the exception
或re-throw the exception
。
抛出异常
public static void main(String[] args) throws InterruptedException {
Date today = new Date();
System.out.println(today);
Calendar cal = Calendar.getInstance();
cal.set(2015, 1, 2, 0, 3, 0);
while (today.before(cal.getTime())) {
System.out.println("Waiting");
Thread.sleep(1000);
today = new Date();
System.out.println(today);
}
System.out.println("Done");
}
捕获例外
public static void main(String[] args) {
Date today = new Date();
System.out.println(today);
Calendar cal = Calendar.getInstance();
cal.set(2015, 1, 2, 0, 3, 0);
while (today.before(cal.getTime())) {
System.out.println("Waiting");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
today = new Date();
System.out.println(today);
}
System.out.println("Done");
}