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 ブロックを使用できます。