メインコンテンツにスキップ
モジュール 5 · レッスン 1 / 2コース内の 9/14~12 min
モジュールのレッスン (1/2)

Try-Catch ブロック

Java では、実行時エラーは Exceptions を使用して処理されます。例外処理により、異常な状態を遮断し、プログラムのクラッシュを防ぐことができます。

try-catch 構造体

潜在的な例外を処理するには、危険なコードを try ブロックで囲みます。 try ブロック内でエラーが発生した場合、JVM はその実行を停止し、例外を処理するために一致する catch ブロックを検索します。

Java
try {
    int result = 10 / 0; // Generates ArithmeticException
    System.out.println("This will not be printed");
} catch (ArithmeticException e) {
    System.out.println("Arithmetic error occurred: " + e.getMessage());
}

finally ブロック

finally ブロックはオプションであり、例外がスローされたかどうかに関係なく常に実行されます。リソースの解放やクリーンアップ操作の実行に最適です。

Java
try {
    System.out.println("Executing logic");
} catch (Exception e) {
    System.out.println("Error");
} finally {
    System.out.println("This block is always executed");
}

例外のスロー: throw

throw キーワードに続いて例外クラスの新しいインスタンスを使用すると、意図的に例外をスローできます。

Java
public static void checkScore(int score) {
    if (score < 0 || score > 100) {
        throw new IllegalArgumentException("Score must be between 0 and 100");
    }
}

自分で試してみてください

運動#java.m5.l1.e1
試行回数: 0読み込み中…

a / b の除算から生じる潜在的な ArithmeticException を処理するための try-catch ブロックを挿入して、コードを完成させます。エラーが発生した場合は、「エラー: ゼロ除算」を出力します。

エディターを読み込み中…
ヒントを表示

除算演算を `try` ブロック内に挿入し、`ArithmeticException` をキャッチして、必要なメッセージを出力します。

3 回の試行後に解決策が利用可能になります

運動#java.m5.l1.e2
試行回数: 0読み込み中…

コードを完成させて、try-catch-finally ブロックを実装します。 try ブロックで、Integer.parseInt を使用して文字列 str を整数に変換しようとします。 catch ブロックで NumberFormatException をインターセプトし、「無効な数値」を出力します。 Finally ブロックでは、「Finally」と出力します。

エディターを読み込み中…
ヒントを表示

`try { ... } catch (NumberFormatException e) { ... }finally { ... }` ブロック構造を記述します。

3 回の試行後に解決策が利用可能になります

運動#java.m5.l1.e3
試行回数: 0読み込み中…

指定された年齢が 18 歳未満の場合は、「Underage」というメッセージを含む IllegalArgumentException をスローして checkAge メソッドを完了します。

エディターを読み込み中…
ヒントを表示

`if (age < 18)` と `throw new` キーワードを使用して、例外をインスタンス化してスローします。

3 回の試行後に解決策が利用可能になります