9

私はJavaが初めてです。Javaプログラムを待機させる方法を探していたところ、Thread.sleep()メソッドを使用するように言われました。ただし、これを行うと、エラーが発生します。

エラー: 報告されていない例外 InterruptedException; キャッチするか、投げることを宣言する必要があります

throws InterruptedExceptionメソッド宣言に追加することで修正したところ、動作するようになりました。

ただし、メソッドを呼び出すと、再びエラーが発生しました。throw と catch ブロックを使うと言う人がいますが、私はまだそれを行う方法がわかりません。ここで誰か助けてくれませんか?

とにかく、Draw.java のコード (sleep() メソッドを使用):

package graphics.utilities;

public class Draw {
  public static void DS(int[] c)
    throws InterruptedException {
    \\ .. Drawing Algorithms
    Thread.sleep(2000);
    \\ .. More Drawing Algorithms
  }
}

Square.java では (DS() を呼び出す):

package graphics.shapes;

import graphics.utilities.*;

public class Square implements Graphics {
  int x1,y1,s;
  public Square(int x1,int y1,int s) {
    this.x1 = x1;
    this.y1 = y1;
    this.s = s;
  }
  public void GC() {
    System.out.printf("Square Coordinates:%n Start Point:%n  x: %d%n  y: %d%n Height/Width: %d%n%n" , this.x1,this.y1,this.s);
  }
  public void D() {
    int x2 = x1 + s;
    int y2 = y1;
    int x3 = x1 + s;
    int y3 = y1 + s;
    int x4 = x1;
    int y4 = y1 + s;

    int[] c = {x1,y1,x2,y2,x3,y3,x4,y4};
    Draw.DS(c);
  }
}

ありがとう。

4

2 に答える 2

17

提供された例は、例外を呼び出しチェーン (メソッド呼び出しチェーン) に渡す方法を示しています。このため、メソッドの宣言には throws InterruptedException が含まれています。

別のアプローチは、発生したメソッドで例外を処理することです:あなたの場合は追加します

try 
{
    Thread.sleep(2000);
} 
catch(InterruptedException e)
{
     // this part is executed when an exception (in this example InterruptedException) occurs
}

try {} catch() {}ブロックを追加した後、メソッド DS から「throws InterruptedException」を削除します。

必要に応じて、他の行をtry {} catch() {}ブロックで囲むことができます。Java の例外について読んでください。

于 2013-08-02T20:16:20.507 に答える