Java コードまたはプログラムを実行すると、コンパイルして実行されるか、エラーがスローされます。コードが をスローする場合、それはエラーまたは例外の結果です。
エラーはより重大です。これはコードの範囲外で、アプリケーションが実行されている環境内で発生します。プログラムはエラーをキャッチして処理することは期待されていません。
エラーの例は次のとおりです
例外はコードのスコープ内で発生します。これは実行エラーとも呼ばれ、コードの実行中に発生することを意味します。プログラマは、プログラム内の例外をキャッチして処理することが期待されています。
この投稿では、特に例外と実行時エラーに焦点を当てます。例外と、Java プログラムで例外エラーを処理する方法についてすべて学びます。
Java には 3 種類の実行エラーがあります。それぞれの内訳は次のとおりです
このタイプのエラーは、コンパイル エラーまたはチェック エラーとして知られています。 Java プログラムはコンパイル段階でこのコードをスローします。
言い換えると、このエラーは Javac コードがバイトコードにコンパイルされるときに発生します。コンパイル時エラーは通常、コード構文のエラーによって発生します。
たとえば、プログラマがステートメントの最後にセミコロンを追加しなかったり、印刷前に変数を初期化できなかった場合です。
public class JavaExceptionCodes { public static void main (String []args){ int y = 10 //no semicolon System.out.println(y); } }
実行時エラーは、例外エラーまたは未チェックエラーとも呼ばれます。プログラムの実行中に発生します。コードはコンパイルされますが、実行時にエラーがスローされます。
実行時エラーは、組み込み例外とユーザー定義例外にさらに分類できます。組み込み例外の例は次のとおりです。
たとえば、ユーザーが文字列の代わりに int を入力したり、配列のサイズより大きな値を挿入した場合です。
public class JavaExceptionCodes { public static void main (String []args) { int nombas[] = {1, 2, 3, 4, 5}; System.out.println(nombas[6]); } } //ArrayIndexOutOfBoundsException
セマンティック エラーとも呼ばれ、プログラムの論理出力にエラーがある場合に発生します。たとえば、3 + 3 は出力 7 を示します。または、アカウントにログインして別のプロファイルに移動した場合です。
コンパイル時エラーは、IDE が常にプログラマにこのエラーを指摘するため、最も簡単に見つけることができます。論理エラーは、コードがコンパイル時エラーや実行時エラーをスローしないため、ほとんどの場合、最も見つけにくいエラーです。
例外処理は、プログラム内のエラーを捕捉し、プログラムの通常の実行フローを維持するために使用されます。通常、プログラムがエラーをスローすると、コードは実行を停止します。
エラーを事前にキャッチして処理すると、プログラムはエラーのあるコードのブロックをスキップし、プログラムの残りの部分の実行を継続できます。
Try – Catch – Finally – Throw – Throws は、Java の例外処理メソッドのリストです。それぞれを例を挙げて詳しく見てみましょう:
Try は、例外をスローする可能性のあるコードの行またはブロックを囲むために使用されます。内部の try ブロックを持つ try である、ネストされた try もあります。これらは同じ目的を果たします。
構文
try{ }
catch は、try ブロックでスローされたエラーをキャッチするために使用されるコードのブロックです。
構文
try{ } catch (Exception e){ }
複数の catch ブロック
public class JavaExceptionCodes { public static void main (String []args) { int x = 10; int y = 0; int z ; int nombas [] = {5, 6, 7, 8, 9}; try { System.out.println(z = x / y); System.out.println(nombas[6]); } catch (ArithmeticException e){ System.out.println("Can't divide by 0. Choose another number" + e); } catch(ArrayIndexOutOfBoundsException e){ System.out.println("Array Out Of Bound" + e); } System.out.println("End"); } }
最後に、オプションのコード ブロックで、通常は try および catch コード ブロックの後に配置されます。重要なコードを実行するために使用されます。 Finally ブロックは、プログラムがエラーをスローするかどうかに関係なく、常に実行されます。
構文
try{ } catch (Exception e){ } finally{ }
Throw は、メソッドまたはコード ブロック内で例外をスローするために使用されるキーワードです。
構文
public class JavaExceptionCodes { public static void main (String []args) { try { throw new ArithmeticException("Try Run"); } catch (ArithmeticException e){ System.out.println("Catch Exception Error"); } } }
throw キーワードとは異なり、throws キーワードは例外をスローするために使用されません。ただし、メソッドに例外が存在する可能性があることが指定されています。 Throws はメソッド内ではなく、メソッド シグネチャ内で使用されます。
try ブロックには複数のステートメント (コード行) を含めることができます。各ステートメントのエラーをキャッチするには、複数の catch ブロックを作成するのが最善です。
複数の catch ブロックを使用する場合は、常に例外のタイプを指定します。
try ブロック内に複数のステートメントがあり、エラーのあるステートメントがわからない場合は、他の例外の最後に最後の一般例外を作成して、未知のエラーをキャッチします。
一般例外キャッチ ブロックは、常に他のカスタム例外キャッチ ブロックの最後に配置します。
以上がJava での例外処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。