HOME > try-catch-finally構文
try-catch-finally文
try~catch~finally文は、例外(Exception)が発生することを事前に予測して、発生した時の処理を記述しておくときに使用する文法です。
まず、try~catchの間に例外が発生する可能性がある処理を記述し、catchに発生した例外ごとの処理を記述します。
finallyに書いた処理は、例外が発生してもしなくても必ず実行されます。
構文
- try-catch-finally構文
- try { //例外が発生する可能性がある処理 } catch(<例外の種類> <変数名>) { //例外発生時の処理 } finally { //例外の発生如何に係らず実行する処理 }
サンプルソースコード
例)引き数を2つ受け取り割り算をする
- TryCatchSample.java
-
public class TryCatchSample { public static void main(String args[]) { try { //引数を受け取る(引数が取れない可能性あり) String a = args[0]; String b = args[1]; //int型に変換する(int型に変換できない可能性あり) int val1 = Integer.parseInt(a); int val2 = Integer.parseInt(b); //割り算をする(ゼロ除算の可能性あり) int result = val1 / val2; //結果表示する System.out.println(result); } catch(ArrayIndexOutOfBoundsException ex) { //ArrayIndexOutOfBoundsExceptionが発生した時の処理 System.out.println("引数の個数が足りません。"); } catch(NumberFormatException ex) { //NumberFormatExceptionが発生した時の処理 System.out.println("数値ではありません。"); } catch(ArithmeticException ex) { //ArithmeticExceptionが発生した時の処理 System.out.println("ゼロ除算です。"); } catch(Exception ex) { //上記以外の例外が発生した時の処理 System.out.println("予期せぬエラーが発生しました。"); ex.printStackTrace(); } finally { //例外の発生如何に関わらず実行する処理 System.out.println("終了"); } } }
実行結果 (引数を渡さない場合)
- コマンドプロンプト
- C:\>java TryCatchSample 引数の個数が足りません。 終了
実行結果 (数値ではない引数を渡した場合)
- コマンドプロンプト
- C:\>java TryCatchSample A B 数値ではありません。 終了
実行結果 (ゼロ除算になるような引数を渡した場合)
- コマンドプロンプト
- C:\>java TryCatchSample 10 0 ゼロ除算です。 終了
実行結果 (例外にならないような引数を渡した場合)
- コマンドプロンプト
- C:\>java TryCatchSample 10 2 5 終了