ホームページ >Java >&#&チュートリアル >Java でキーワードをスローする
この Throw キーワードは、例外処理の概念で顕著に使用されます。名前が示すように、throw キーワードはプログラムからコンパイラに例外をスローします。例外に関するブリーフィングは、コードの実行時に矛盾が発生した場合にコンパイラがプログラムから出力するエラーの一種です。この throw キーワードを使用すると、プログラムの実行時にエラーの原因を解釈して例外を定義できます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
以下でさらに詳しく見てみましょう:
構文
Java での throw の構文は次のとおりです。
throw exception_type ;
または
throw instance;
ここでは、キーワードがどのように使用されているかを確認し、例を通してフローがどのように機能するかを理解できます。
import java.util.Scanner; public class Main { public static void main(String[] args) { int c; Scanner sc = new Scanner(System.in); System.out.println("Enter value of A: "); int a = sc.nextInt(); //Scanner b = new Scanner(System.in); System.out.println("Enter value of B: "); int b = sc.nextInt(); try { c= a/b; if(b==0) { throw new ArithmeticException(); } System.out.println("Value of C is: " +c); } catch(ArithmeticException e) { System.out.println("Caught this here"); } finally { } System.out.println("Finally block is here"); } }
古典的で簡単なゼロ除算の例を使ってこれに対処しましょう。
以下のコードを分析します:
以下の出力を確認してみましょう。
出力 1: b 値がゼロでない場合。
ゼロ以外の「B」値により、実行された try、throw、catch ブロックが存在しないことがわかります。最終的に、ブロックは例外の生成に関係なく実行されます。
出力 2: b 値が 0 の場合。
強調表示された部分により、例外が正常にスローされ、catch ブロックによってキャッチされることが保証されます。
それでは、以下の例を見てみましょう。
例:
単一のプログラムで複数の例外をスローする方法を見てみましょう。
public class Main { public static void main(String[] args) { String sun[] = {"chocolate", "honey", "sugar", "sweet", "bitter"}; String h = null; try { for (int i=0; i<=7; i++) { if(i > sun.length) { throw new ArrayIndexOutOfBoundsException(); } System.out.println(sun[i]); } } catch(ArrayIndexOutOfBoundsException ae) { System.out.println("Inside array index out of bounds exception catch block"); } try{ sun[0]=h; if (sun[0] == null) { throw new NullPointerException(); } System.out.println("Value of sun[0] is: " +sun[0]); } catch(NullPointerException f) { System.out.println("Caught Null point exception"); } finally { System.out.println("executing finally"); } } }
上記では、プログラムを解釈するために 2 つの異なるタイプの例外とスロー キーワードを使用しました。範囲外の配列インデックスと Null ポインタ例外は、ここで単一のプログラムで使用したものです。
出力:
この throw キーワードは、try ブロックと catch ブロックの間の橋渡しとして機能するのに役立ちます。これは、プログラムの制御を try ブロックから catch ブロックに移すのに役立ちます。
throw キーワードを使用した場合と使用しない場合のプログラムの動作例を示します。
public class Main { public static void main(String[] args) { try { int a = Integer.parseInt ("Happy") ; System.out.println("Will this get printed?"); } catch(NumberFormatException e) { System.out.println("Number format exception of catch block"); } System.out.println("Priting after catch block"); } }
throw キーワードを使用せずにコードを作成しました。ただし、コードを使用して、例外を処理するブロックをキャッチしようとしました。さて、上記の出力をご存知ですか?
期待通りですよね?したがって、コードが実行され、例外が見つかり、その例外がキャッチされました。
さて、throw ステートメントを挿入すると、コードはどのように動作するでしょうか?以下を見てみましょう。
public class Main { public static void main(String[] args) { try { int a = Integer.parseInt ("Happy") ; throw new NumberFormatException(); System.out.println("Will this get printed?"); } catch(NumberFormatException e) { System.out.println("Number format exception of catch block"); } System.out.println("Priting after catch block"); } }
強調表示された部分のみが、上記 2 つのコード間の変更です。
出力:
はい、throw キーワードの後の print ステートメントが到達できないため、コンパイル エラーが発生します。この例を通して、「try to catch ブロックから制御を移す」ということが何を意味するのかを正確に理解していただければ幸いです。
演習として、キーワードをスローした後の print ステートメントを削除して、プログラムがどのように反応するかを確認してみてください。
このようにして、例外処理時に throw コマンドが登場しました。 THROW キーワードと THROWS キーワードの間には大きな違いがあることに気付きました。どちらも例外の概念で使用されます。 「THROW」キーワードをどこでどのように使用できるか、コンセプトはすでにわかっています。ぜひ練習して、さまざまな方法で使ってみてください。学び続けてください。
以上がJava でキーワードをスローするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。