16

Java例外処理でのスローとスローの違いを例で明確に説明できる人はいますか? 私はググってみましたが、結論に達することができませんでした。助けてください

4

3 に答える 3

47
  1. throws句は例外を宣言するために使用され、throwキーワードは明示的に例外をスローするために使用されます。

  2. 構文的に見るthrowと、その後にインスタンス変数throwsが続き、その後に例外クラス名が続きます。

  3. キーワードthrowはメソッド本体内で例外を呼び出すためにthrows使用され、節はメソッド宣言 (シグネチャ) で使用されます。

例えば

投げる

throw new Exception("You have some exception")
throw new IOException("Connection failed!!")

スロー

public int myMethod() throws IOException, ArithmeticException, NullPointerException {}
  1. で複数の例外を宣言することはできませんthrow。public void method() throws IOException,SQLException など、複数の例外を宣言できます。

  2. throwチェックされた例外は、特定の例外をスローするために明示的に使用されているという理由だけで伝播できません。チェックされた例外は で伝播できますthrows

例外の伝播:例外は、キャッチされるまで、メソッドからメソッドへとコール スタックを上って伝播します。したがって、a() が b() を呼び出し、b() が c() を呼び出し、c() が d() を呼び出し、d() が例外をスローした場合、これらのメソッドのいずれかがキャッチしない限り、例外は d から c、b、a に伝播します。例外。 例外伝播とは何ですか?

于 2014-09-02T07:08:01.393 に答える