为什么会抛出InterruptedException?

时间:2013-11-25 00:52:41

标签: java multithreading loops

enter image description here

这段代码应该编译,不是吗?我究竟做错了什么?我希望代码在显示数组中的每个数字之前暂停一下。

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]);
}

4 个答案:

答案 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

使用try catch块

删除抛出异常并更改

Thread.sleep(500);

try{Thread.sleep(500);}catch(Exception e){}

答案 2 :(得分:0)

使用TimerTimerTask代替让线程休眠。

答案 3 :(得分:0)

我并不完全相信会抛出异常,但是您必须声明它被抛出或者自己捕获它的原因是由于它是checked exception

由于InterruptedException被声明为方法签名的一部分,因此必须以某种方式解决它。