スローとスローの違いは何ですか。 Javaでスロー

公開: 2013-07-23

スローとスローの違いは何ですか。 Javaでスロー

1つはそれを宣言し、もう1つはそれを行います

Javaでの例外処理に関連するキーワードは5つあります。たとえば、try、catch、finally、throw、throwsです。 ファイナル、ファイナル、ファイナライズの違いは別として、スローとスローは、Javaインタビューでよく聞かれる質問の1つです。

  • throwキーワードは、Javaの任意のメソッドまたは静的ブロックからExceptionをスローするために使用され、 throwsキーワードは、メソッド宣言で使用され、このメソッドによってスローされる可能性のあるExceptionを示します。 それらは互換性がありません。
  • 以下の例に示すように、いずれかのメソッドがチェック済みの例外をスローした場合、呼び出し元はこの例外をキャッチして処理するか、メソッド宣言で別のthrows句を宣言して再スローできます。
  • Throw句は、呼び出し元のメソッドに特定の例外をスローする必要があると思われるコードの任意の部分で使用できます。

Java例外を過小評価する:

メソッドが例外をスローしている場合は、それをキャッチするためにtry catchブロックで囲むか、そのメソッドのシグネチャにthrows句を含める必要があります。 シグニチャにthrows句がないと、JavaJVMコンパイラは例外をどう処理するかを認識しません。 throws句は、この特定の例外が呼び出し元のメソッドによって処理されることをコンパイラーに通知します。

以下は、JavaでのThrow、Throws、Try、Catch、Finallyブロックの動作を説明する非常に簡単な例です。

結果:

Null PointerException-Crunchify

次に、45行目と46行目を下の行に置き換えて、以下の結果を確認します。

新しい結果:

興味があるかもしれないすべてのJavaチュートリアルのリスト。

例外に関するボーナスのヒント:

  • 例外がスローされると、通常のプログラム実行はすぐに分岐します。
  • チェックされた例外は、キャッチまたは転送する必要があります。 これは、 try…catchステートメントで実行するか、メソッド定義で例外を定義することで実行できます。
  • 例外は、関連付けられた例外クラスがスローされた例外のクラスまたはスーパークラスと一致する最初のcatchブロックによってキャッチされます。
  • 例外チェーンに一致するcatchブロックが見つからない場合、スローされた例外を含むスレッドは終了します。
  • try…catchステートメントの後のfinallyブロックは、例外がキャッチされたかどうかに関係なく実行されます。
  • finallyブロック内に戻ると、キャッチされなかった例外の場合でも、呼び出し元への例外チェーンが切断されます。