Java Try Catch ブロック

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.');> > }> > }> }>

出力

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 ブロックは、完全な実行前にコードが中断しないように例外を回避するために使用されます。

2. Java の throw と throws とは何ですか?

throw は、try ブロックから catch ブロックに制御を移すために使用されます。一方、 throws は try & catch ブロックを使用しない例外処理に使用されます。スローは、メソッドが呼び出し元にスローでき、それ自体は処理しない例外を指定します。

3. catch ブロックを 2 つ使用できますか?

はい、try ステートメントを使用して複数の catch ブロックを使用できます。