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
チャレンジ
簡単divideNumbers という名前のメソッドを作成し、3つの引数を受け取ります:
- 最初の数を表す String (
num1) - 2番目の数を表す String (
num2) - 配列のインデックスを表す整数 (
index)
このメソッドは次のことを行うべきです:
- サイズ 2 の配列を作成します
- num1 を解析した整数値を num2 を解析した整数値で割った結果を、指定されたインデックスに格納します
- 指定されたインデックスにある値を返します
- すべての可能な例外を適切なエラーメッセージで処理します
戻り値のメッセージは次のようであるべきです:
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));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。