1// Aim: Program to perform Exception Handling operations (Calculator).
2import java.util.InputMismatchException;
3import java.util.Scanner;
4
5public class Calculator {
6
7 public static void main(String[] args) {
8 Scanner scanner = new Scanner(System.in);
9
10 while (true) {
11 try {
12 System.out.print("Enter first number: ");
13 double num1 = scanner.nextDouble();
14
15 System.out.print("Enter second number: ");
16 double num2 = scanner.nextDouble();
17
18 System.out.print("Enter an operator (+, -, *, /) or 'q' to quit: ");
19 char operator = scanner.next().charAt(0);
20
21 if (operator == 'q') {
22 break;
23 }
24
25 double result;
26 switch (operator) {
27 case '+':
28 result = num1 + num2;
29 break;
30 case '-':
31 result = num1 - num2;
32 break;
33 case '*':
34 result = num1 * num2;
35 break;
36 case '/':
37 if (num2 == 0) {
38 throw new ArithmeticException("Cannot divide by zero");
39 }
40 result = num1 / num2;
41 break;
42 default:
43 throw new IllegalArgumentException("Invalid operator");
44 }
45
46 System.out.println("The result is: " + result);
47 } catch (InputMismatchException e) {
48 System.out.println("Error: Please enter numeric values.");
49 scanner.next(); // Clear the invalid input
50 } catch (ArithmeticException e) {
51 System.out.println("Error: " + e.getMessage());
52 } catch (IllegalArgumentException e) {
53 System.out.println("Error: " + e.getMessage());
54 }
55 }
56
57 scanner.close();
58 }
59}