Menu
Coddy logo textTech

try-catch の基本

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 40/59。

Javaのtry-catchブロックは、プログラム実行中に発生する可能性のある例外(エラー)を処理するために使用されます。例外をスローする可能性のあるコードはtryブロックに、エラーハンドリングコードはcatchブロックに入れます。

try-catch ブロックの基本構造は以下の通りです:

try {
   // 例外をスローする可能性のあるコード
} catch (ExceptionType e) {
   // 例外を処理するコード
}

Integer.parseInt() を使用して実際の動作を見てみましょう。これは String を整数に変換します:

String text = "abc";
try {
   int number = Integer.parseInt(text);
   System.out.println(number);
} catch (NumberFormatException e) {
   System.out.println("Error: Not a valid number");
}

上記のコードを実行した後、出力は:

Error: Not a valid number

challenge icon

チャレンジ

簡単

divideNumbers という名前のメソッドを作成し、3つの引数を受け取ります:

  1. 最初の数を表す String (num1)
  2. 2番目の数を表す String (num2)
  3. 配列のインデックスを表す整数 (index)

このメソッドは次のことを行うべきです:

  1. サイズ 2 の配列を作成します
  2. num1 を解析した整数値を num2 を解析した整数値で割った結果を、指定されたインデックスに格納します
  3. 指定されたインデックスにある値を返します
  4. すべての可能な例外を適切なエラーメッセージで処理します

戻り値のメッセージは次のようであるべきです:

  • NumberFormatException の場合: "Error: Invalid number format"
  • ArithmeticException の場合: "Error: Division by zero"
  • ArrayIndexOutOfBoundsException の場合: "Error: Invalid array index"
  • 成功した場合:結果を文字列として返します

チートシート

try-catch ブロックは、プログラム実行中に発生する可能性のある例外(エラー)を処理します。例外をスローする可能性のあるコードは try ブロックに、エラーハンドリングコードは catch ブロックに入れます。

基本構造:

try {
   // 例外をスローする可能性のあるコード
} catch (ExceptionType e) {
   // 例外を処理するコード
}

Integer.parseInt() の例:

String text = "abc";
try {
   int number = Integer.parseInt(text);
   System.out.println(number);
} catch (NumberFormatException e) {
   System.out.println("Error: Not a valid number");
}

一般的な例外タイプ:

  • NumberFormatException - 無効な数値形式
  • ArithmeticException - ゼロ除算
  • ArrayIndexOutOfBoundsException - 無効な配列インデックス

自分で試してみよう

import java.util.Scanner;

public class Main {
    public static String divideNumbers(String num1, String num2, int index) {
        // ここにコードを記述してください
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String num1 = scanner.nextLine();
        String num2 = scanner.nextLine();
        int index = Integer.parseInt(scanner.nextLine());
        
        System.out.println(divideNumbers(num1, num2, index));
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン