-4

Android のサンプル コードで、次のような「スロー」の見慣れない使い方を見つけました。

public Void handleResponse(HttpResponse response) throws IOException
{
  ...
}

この場合、この「スロー」がどのように機能するかを知りたいだけです。go google で適切な検索ワードを見つけるのが少し難しかったので、これを投稿しました。

4

5 に答える 5

3

throwsと を混ぜていると思いますthrow

throwsメソッドのシグネチャで、IOException場合によっては をスローできることを示します。 throw new IOException()実際の例外をスローします。

このthrowsキーワードはすべての Java プログラムで見られ、例外がチェック済み例外try {} catch(){}である場合、メソッド呼び出しをブロックにカプセル化する必要があります。

于 2013-01-18T13:27:39.123 に答える
1

メソッド宣言の後のthrowsキーワードは、このメソッドこの例外をスローする可能性があることを示しています。これは、次のように、呼び出し元のメソッドがこの例外を確実にキャッチする必要があることを意味します。

...
try {
  var.handleResponse(response);
catch (IOException e) {
  // oops, something went wrong
  e.printStackTrace();
}
于 2013-01-18T13:27:07.540 に答える
0

関数本体のどこかでIOException がスローされる可能性handleResponse()があります。関数を呼び出すときは、ブロックで囲む必要があります。try..catch

于 2013-01-18T13:25:25.360 に答える
0

IOExceptionはチェックされた例外であるため、throws IOExceptionメソッド内のコードがスローできる場合IOException(メソッド内でそれをキャッチしていない場合) は必須です。IOExceptionこれは、RuntimeException ( など) の場合は必要ありませんNullPointerException。たぶん、この質問を見てください。

于 2013-01-18T13:25:33.487 に答える
0

Java チュートリアルから始めてください。同じチュートリアルから:

すべてのメソッドは、throw ステートメントを使用して例外をスローします。throw ステートメントには、スロー可能なオブジェクトという 1 つの引数が必要です。Throwable オブジェクトは、Throwable クラスの任意のサブクラスのインスタンスです。以下は、throw ステートメントの例です。

    throw someThrowableObject;
于 2013-01-18T13:26:51.450 に答える