Обработка деления на ноль try catch

Есть простенький калькулятор, но никак не могу именно в нем сделать обработку исключения деления на ноль. Я не знаю, где ловить ArithmeticException. Я знаю, как обработать это исключение, но я не знаю как сделать это именно в моем калькуляторе.

case '/':
    try {
        result = num1 / num2;
    } catch (ArithmeticException e) {
        System.out.println("division by zero");
    }

Вот весь код:

public class Try {
    static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int num1 = getInt();
        int num2 = getInt();
        char operation = getOperation();
        int result = calc(num1, num2, operation);
        System.out.println("Result of operation: " + result);
    }

    // Читання числа і перевірка на цілочисельність
    public static int getInt() {
        System.out.println("Enter number: ");
        int num;
        if (scanner.hasNextInt()) {
            num = scanner.nextInt();
        } else {
            System.out.println("Wrong number, try again.");
            scanner.next();
            num = getInt();
        }
        return num;
    }

    // Вибір операції, повідомити, якщо символ неправильний
    public static char getOperation() {
        System.out.println("Choose operation + - * / ");
        char operation;
        if (scanner.hasNext()) {
            operation = scanner.next().charAt(0);
        } else {
            System.out.println("Wrong operation, try again + - * /");
            scanner.next();
            operation = getOperation();
        }
        return operation;
    }

    //Обчислення, на основі введених чисел і вибраної операції
    public static int calc(int num1, int num2, char operation) {
        int result;
        switch (operation) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                try {
                    result = num1 / num2;
                } catch (ArithmeticException e) {
                    System.out.println("division by zero");
                }
                break;
            default:
                System.out.println("Wrong operation, try again.");
                result = calc(num1, num2, getOperation());
        }

        return result;
    }
}

Ответы (2 шт):

Автор решения: DeMmAge
package com.company;

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

public class Try {

    private Scanner scanner = new Scanner(System.in);
    private static final String FORMAT = "Result of operation: %d";
    private static final String ENTER_NUMBER = "Enter number: ";

    public void main() {
        int num1 = 0;
        int num2 = 0;
        char operation = '0';
        try {
            System.out.print(ENTER_NUMBER);
            num1 = scanner.nextInt();
            System.out.print(ENTER_NUMBER);
            num2 = scanner.nextInt();
            System.out.print("Choose operation + - * / : ");
            operation = scanner.next().charAt(0);
        } catch (InputMismatchException e) {
            System.out.println("Wrong input");
        }
        switch (operation) {
            case '+':
                System.out.printf(FORMAT, num1 + num2);
                break;
            case '-':
                System.out.printf(FORMAT, num1 - num2);
                break;
            case '*':
                System.out.printf(FORMAT, num1 * num2);
                break;
            case '/':
                try {
                    System.out.printf(FORMAT, num1 / num2);
                } catch (ArithmeticException e) {
                    System.out.println("division by zero");
                }
                break;
            default:
                System.out.println("Wrong operation, try again.");
                break;
        }
    }
}
→ Ссылка
Автор решения: Мирлан Дарибаев
import java.util.Scanner;
public class Examen {
    static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num1 = getInt();
        int num2 = getInt();
        char operation = getOperation();
        int result = calc(num1, num2, operation);
        System.out.println("Результат операции: " + result);
    }
    public static int getInt() {
        System.out.println("Напишите значение: ");
        int num;
        if (scanner.hasNextInt()) {
            num = scanner.nextInt();
        } else {
            System.out.println("Неправильно, введите ещё раз.");
            scanner.next();
            num = getInt();
        }
        return num;
    }

    public static char getOperation() {
        System.out.println("Выберите операцию + - * / ");
        char operation;
        if (scanner.hasNext()) {
            operation = scanner.next().charAt(0);
        } else {
            System.out.println("Неправильно, введите ещё раз. + - * /");
            scanner.next();
            operation = getOperation();
        }
        return operation;
    }

    public static int calc(int num1, int num2, char operation) {
        int result = 0;
        switch (operation) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                try {
                    result = num1 / num2;
                } catch (ArithmeticException e) {
                    System.out.println("на ноль делить нельзя.");
                }
                break;
            default:
                System.out.println("Неправильно введите ещё раз.");
                result = calc(num1, num2, getOperation());
        }

        return result;
    }
}
→ Ссылка