Javaでは 例外 プログラムの実行中に発生する、望ましくない、または予期しないイベントです。例外が発生すると、プログラムの実行は終了します。これらの終了条件を回避するには、Java で try catch ブロックを使用します。この記事では、Java の Try、catch、throw、throws について学びます。
なぜ例外が発生するのでしょうか?
例外は、ネットワーク接続の問題、ユーザーによる不正な入力、プログラム内で存在しないファイルを開いたなど、いくつかの理由で発生する可能性があります。
例外処理に使用されるブロックとキーワード
1. Javaで試してみる
の 試す ブロックには、例外が発生する可能性のある一連のステートメントが含まれています。
try { // statement(s) that might cause exception }> 2. Java でキャッチする
catch ブロックは、try ブロックの不確実な状態を処理するために使用されます。 try ブロックの後には常に catch ブロックが続き、関連する try ブロックで発生した例外を処理します。
catch { // statement(s) that handle an exception // examples, closing a connection, closing // file, exiting the process after writing // details to a log file. }> 3. Javaを投入する
throw キーワードは、try ブロックから catch ブロックに制御を移すために使用されます。
上記のアプローチの実装を以下に示します。
ジャワ
// Java program that demonstrates the use of throw> class> ThrowExcep {> >static> void> help()> >{> >try> {> >throw> new> NullPointerException(>'error_unknown'>);> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught inside help().'>);> >// rethrowing the exception> >throw> e;> >}> >}> >public> static> void> main(String args[])> >{> >try> {> >help();> >}> >catch> (NullPointerException e) {> >System.out.println(> >'Caught in main error name given below:'>);> >System.out.println(e);> >}> >}> }> |
ジャッカル対オオカミ
>
>出力
Caught inside help(). Caught in main error name given below: java.lang.NullPointerException: error_unknown>
4. Javaをスローする
の 投げる キーワードは、try & catch ブロックを使用しない例外処理に使用されます。これは、メソッドが呼び出し元にスローできる例外を指定しますが、メソッド自体は処理しません。
上記のアプローチの実装を以下に示します。
ジャワ
// Java program to demonstrate working of throws> class> ThrowsExecp {> >// This method throws an exception> >// to be handled> >// by caller or caller> >// of caller and so on.> >static> void> fun()>throws> IllegalAccessException> >{> >System.out.println('Inside fun(). ');> >throw> new> IllegalAccessException('demo');> >}> >// This is a caller function> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (IllegalAccessException e) {> >System.out.println('caught in main.');> >}> >}> }> |
>
CSSテキストの整列
>出力
Inside fun(). caught in main.>
5. ついにJavaで
これは catch ブロックの後に実行されます。これを使用して、複数の catch ブロックがある場合に、共通のコード (例外が発生したかどうかに関係なく実行される) を配置します。
システムによって生成される例外の例を以下に示します。
Exception in thread 'main' java.lang.ArithmeticException : divide by zero at ExceptionDemo.main(ExceptionDemo.java:5) ExceptionDemo: The class name main:The method name ExceptionDemo.java:The file name java:5:line number>
上記のアプローチの実装を以下に示します。
ジャワ
// Java program to demonstrate working of try,> // catch and finally> class> Division {> >public> static> void> main(String[] args)> >{> >int> a =>10>, b =>5>, c =>5>, result;> >try> {> >result = a / (b - c);> >System.out.println('result' + result);> >}> >catch> (ArithmeticException e) {> >System.out.println('Exception caught:Division by zero');> >}> >finally> {> >System.out.println('I am in>final> block');> >}> >}> }> |
>
>出力
Exception caught:Division by zero I am in final block>
Java の Try ブロックに関する FAQ
1. Try Catch ブロックをいつ使用する必要がありますか?
Try catch ブロックは、完全な実行前にコードが中断しないように例外を回避するために使用されます。
Javaのループの終了
2. Java の throw と throws とは何ですか?
throw は、try ブロックから catch ブロックに制御を移すために使用されます。一方、 throws は try & catch ブロックを使用しない例外処理に使用されます。スローは、メソッドが呼び出し元にスローでき、それ自体は処理しない例外を指定します。
3. catch ブロックを 2 つ使用できますか?
はい、try ステートメントを使用して複数の catch ブロックを使用できます。