TECH I.S.

Java 例外(Try...Catch)


Java 例外

Javaコードを実行すると、さまざまなエラーが発生する可能性があります。プログラマーによるコーディングエラー、間違った入力によるエラー、またはその他の予測不可能なエラーです。

エラーが発生すると、Javaは通常停止し、エラー メッセージを生成します。専門用語では、Javaは例外を投げる(エラーを投げる)と言います。


Javaのtry & catch

try文は、実行中にエラーがないかテストするコードブロックを定義できます。 catch文は、tryブロックでエラーが発生した場合に実行するコードブロックを定義できます。 trycatchキーワードはペアになっています。

構文

try {
 // tryコードブロック
}
catch(Exception e) {
 // エラーを処理するコードブロック
}

次の例を確認してください。

myNumbers[10]が存在しないためエラーが発生します。

public class Main { public static void main(String[ ] args) { int[] myNumbers = {1, 2, 3}; System.out.println(myNumbers[10]); //エラー } }

以下のように出力されます。

`Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10       
at Main.main(Main.java:4)`

自分で試してみる»

エラーが発生した場合は、try...catchを使用してエラーをキャッチし、それを処理するコードを実行します。

public class Main { static void main(String[ ] args) { try { int[] myNumbers = {1, 2, 3}; System.out.println(myNumbers[10]); } catch (Exception e) { System.out.println("エラー発生。"); } } }

出力は次のようになります。

エラー発生。

自分で試してみる»


Finally

finally文は、try...catchの後に、結果に関係なくコードを実行します。

public class Main { public static void main(String[] args) { try { int[] myNumbers = {1, 2, 3}; System.out.println(myNumbers[10]); } catch (Exception e) { System.out.println("エラー発生。"); } finally { System.out.println("try catchブロックの処理終了。"); } } }

出力は次のようになります。

エラー発生。
try catchブロックの処理終了。

自分で試してみる»


throwキーワード

throw文は、カスタムエラーを作成できます。 throw文は、例外型とともに使用されます。Javaには多くの例外の種類があります。ArithmeticExceptionFileNotFoundExceptionArrayIndexOutOfBoundsExceptionSecurityExceptionなど。

年齢が18歳未満の場合は例外をスローします(「アクセスが拒否されました」と出力)。年齢が18歳以上の場合は、「アクセス許可」を出力します。

public class Main { static void checkAge(int age) { if (age < 18) { throw new ArithmeticException("アクセス拒否 - 18歳以上である必要があります。"); } else { System.out.println("アクセス許可 - 規定の年齢を超えています。"); } } public static void main(String[] args) { checkAge(15); // Set age to 15 (which is below 18...) } }

出力は次のようになります。

`Exception in thread "main" java.lang.ArithmeticException: アクセス拒否 - 18歳以上である必要があります。
    at Main.checkAge(Main.java:4)
    at Main.main(Main.java:12)`

自分で試してみる»

もしも年齢が20歳の場合、例外を受け取りません。

checkAge(20);

出力は次のようになります。

アクセス許可 - 規定の年齢を超えています。

自分で試してみる»




プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細