モジュールのレッスン (1/2)
Try-Catch ブロック
Java では、実行時エラーは Exceptions を使用して処理されます。例外処理により、異常な状態を遮断し、プログラムのクラッシュを防ぐことができます。
try-catch 構造体
潜在的な例外を処理するには、危険なコードを try ブロックで囲みます。 try ブロック内でエラーが発生した場合、JVM はその実行を停止し、例外を処理するために一致する catch ブロックを検索します。
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 ブロックはオプションであり、例外がスローされたかどうかに関係なく常に実行されます。リソースの解放やクリーンアップ操作の実行に最適です。
try {
System.out.println("Executing logic");
} catch (Exception e) {
System.out.println("Error");
} finally {
System.out.println("This block is always executed");
}例外のスロー: throw
throw キーワードに続いて例外クラスの新しいインスタンスを使用すると、意図的に例外をスローできます。
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Score must be between 0 and 100");
}
}自分で試してみてください
a / b の除算から生じる潜在的な ArithmeticException を処理するための try-catch ブロックを挿入して、コードを完成させます。エラーが発生した場合は、「エラー: ゼロ除算」を出力します。
ヒントを表示
除算演算を `try` ブロック内に挿入し、`ArithmeticException` をキャッチして、必要なメッセージを出力します。
3 回の試行後に解決策が利用可能になります
コードを完成させて、try-catch-finally ブロックを実装します。 try ブロックで、Integer.parseInt を使用して文字列 str を整数に変換しようとします。 catch ブロックで NumberFormatException をインターセプトし、「無効な数値」を出力します。 Finally ブロックでは、「Finally」と出力します。
ヒントを表示
`try { ... } catch (NumberFormatException e) { ... }finally { ... }` ブロック構造を記述します。
3 回の試行後に解決策が利用可能になります
指定された年齢が 18 歳未満の場合は、「Underage」というメッセージを含む IllegalArgumentException をスローして checkAge メソッドを完了します。
ヒントを表示
`if (age < 18)` と `throw new` キーワードを使用して、例外をインスタンス化してスローします。
3 回の試行後に解決策が利用可能になります