这段代码应该编译,不是吗?我究竟做错了什么?我希望代码在显示数组中的每个数字之前暂停一下。
public static void median(int odd[]) throws InterruptedException {
Arrays.sort(odd);
for (int i = 0; i < odd.length; i++) {
System.out.println(odd[i]);
Thread.sleep(500);
}
System.out.println("The median number of the previous list of numbers is: " + odd[5]);
}
答案 0 :(得分:2)
我假设你的main
中有类似
public static void main (String[] args) {
int[] array = new int[X];
...// populate array
median(array);
}
由于median
是一个声明为抛出已检查异常的方法,因此您必须捕获Exception
或重新抛出它。
public static void main (String[] args) {
int[] array = new int[X];
...// populate array
try {
median(array);
} catch (InterruptedException e) {
// handle it
}
}
或
public static void main (String[] args) throws InterruptedException {
int[] array = new int[X];
...// populate array
median(array);
}
答案 1 :(得分:1)
最好为Thread.sleep
删除抛出异常并更改
Thread.sleep(500);
到
try{Thread.sleep(500);}catch(Exception e){}
答案 2 :(得分:0)
使用Timer
或TimerTask
代替让线程休眠。
答案 3 :(得分:0)
我并不完全相信会抛出异常,但是您必须声明它被抛出或者自己捕获它的原因是由于它是checked exception。
由于InterruptedException
被声明为方法签名的一部分,因此必须以某种方式解决它。