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

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

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

        try {
            // ユーザーに2つの整数を入力してもらう
            System.out.print("1つ目の整数を入力してください: ");
            int num1 = scanner.nextInt();

            System.out.print("2つ目の整数を入力してください: ");
            int num2 = scanner.nextInt();

            // 整数以外の入力があった場合の例外処理
            if (num2 == 0) {
                throw new ArithmeticException("エラー: 0で割り算をすることはできません。");
            }

            // 割り算の計算
            int quotient = num1 / num2;
            int remainder = num1 % num2;

            // 結果を表示
            System.out.println("割り算の結果:");
            System.out.println("商: " + quotient);
            System.out.println("余り: " + remainder);

        } catch (InputMismatchException e) {
            // 整数以外の入力があった場合の例外処理
            System.out.println("エラー: 整数以外の入力が検出されました。");

        } catch (ArithmeticException e) {
            // 0で割り算をしようとした場合の例外処理
            System.out.println(e.getMessage());

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

このプログラムでは、Scanner クラスを使用してユーザーに2つの整数を入力してもらいます。入力された整数の割り算の商と余りを計算し、その結果を表示します。また、整数以外の入力や0での割り算に対する例外処理も含まれています。最後に finally ブロックで Scanner をクローズしています。

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