23

私はJavaが初めてで、プログラミングも初めてです(Javaに直接飛び込むのはおそらく最高のアイデアではなかったことを知っています)。プログラムに一時停止を追加しようとしても、一貫してエラーが発生します。私は単純なカウント プログラムを実行しており、各数値の間に 1 秒の遅延を追加したいと考えています。これまでのコードは次のとおりです。

import java.lang.*;

public class Counter
{
    public static void main(String[]args)
    {
        int i;

        for (i = 0; i <= 10; i++)
        {
            Thread.sleep(1000);
            System.out.println(i);
        }
        System.out.println("You can count to ten.");
    }
}

への呼び出しThread.sleep()はコンパイルされません。コンパイラは、「報告されていjavacない例外 InterruptedException; スローされるようにキャッチまたは宣言する必要があります」と言い、Eclipse は「ハンドルされていない例外タイプ InterruptedException」と言います。

4

2 に答える 2

55

Thread.sleep は、チェック例外である InterruptedException をスローできます。すべてのチェック済み例外は、キャッチして処理するか、メソッドが例外をスローできることを宣言する必要があります。例外が実際にスローされるかどうかにかかわらず、これを行う必要があります。メソッドがスローできるチェック済み例外を宣言しないと、コンパイル エラーになります。

あなたはそれをキャッチする必要があります:

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    e.printStackTrace();
    // handle the exception...        
    // For example consider calling Thread.currentThread().interrupt(); here.
}

または、メソッドが次をスローできることを宣言しますInterruptedException

public static void main(String[]args) throws InterruptedException

関連している

于 2012-12-22T18:49:27.340 に答える