019 例外と例外処理(複数の例外の処理) 012 解答例

import java.util.InputMismatchException;
import java.util.Scanner;

public class StringToIntegerProgram {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        try {
            // ユーザーに文字列を入力してもらう
            System.out.print("整数が含まれる文字列を入力してください: ");
            String inputString = scanner.nextLine();

            // 文字列から整数を抽出
            int extractedNumber = Integer.parseInt(inputString);

            // 抽出した整数を2で割り、結果を表示
            double result = extractedNumber / 2.0;
            System.out.println("抽出した整数を2で割った結果: " + result);

        } catch (NumberFormatException e) {
            // 文字列内に整数が見つからない場合の例外処理
            System.out.println("エラー: 文字列内に整数が見つかりません。");

        } catch (ArithmeticException e) {
            // 抽出した整数が0である場合の例外処理
            System.out.println("エラー: 抽出した整数が0です。");

        } finally {
            // Scannerのクローズ
            scanner.close();
        }
    }
}

このプログラムでは、Scanner クラスを使用してユーザーに文字列を入力してもらい、Integer.parseInt() メソッドを使用して文字列から整数を抽出します。その後、抽出した整数を2で割り、結果を表示します。

例外処理では、NumberFormatException が発生した場合には「文字列内に整数が見つからない」、ArithmeticException が発生した場合には「抽出した整数が0である」というエラーメッセージが表示されます。最後に、finally ブロックで Scanner をクローズしています。

「019 例外と例外処理」問題集リスト