Я должен обработать ошибку «InputMismatchException» в «приложении», которое вычисляет числа в зависимости от того, какой оператор пользователя вводит. Я использую там в своем коде «попробовать», но после этого мои операции «собирать, сокращать, делить, умножать» больше не работают. Где я должен использовать эту «попытку» в моем коде, если пользователь вводит число, например, когда ему нужно ввести оператор и обработать ошибку, не отказывая при сборке и продолжая спрашивать пользователя, что он хочет сделать.
package t3;
import java.util.InputMismatchException;
import java.util.Scanner;
public class T3 {
public static void main(String[] args) {
String answer;
do{
Scanner ab = new Scanner(System.in);
System.out.println("Input what operation do you want to do!");
System.out.println("For gather: \"+\"");
System.out.println("For reduction: \"-\"");
System.out.println("For division: \"/\"");
System.out.println("For multiplication: \"*\"");
System.out.print(":");
String operation = ab.nextLine();
try{
System.out.print("Input first number: ");
int nr1 = ab.nextInt();
System.out.print("Input second number: ");
int nr2 = ab.nextInt();
int gather, reduction, division, multiplication;
gather=nr1+nr2;
reduction=nr1-nr2;
division=nr1/nr2;
multiplication=nr1*nr2;
}
catch (InputMismatchException e)
{ System.out.println(" ------------------------------ You have to choose an operation ------------------------------"); }
switch (operation){
case "+" : System.out.println("The result is: " +gather);
break;
case "-" : System.out.println("The result is: " +reduction);
break;
case "/" : System.out.println("The result is: " +division);
break;
case "*" : System.out.println("The result is: " +multiplication);
break;
default : System.out.println(" !!!! You haven't chosen an operation... \n **** Input smth like: \n+ -> gather\n- -> reduction\n/ -> division\n* -> multiplication");
}
System.out.println("Do you keep going? Yes/ No");
Scanner tx = new Scanner(System.in);
answer= tx.nextLine();
}
while(answer.equalsIgnoreCase("Yes"));
}
}
РЕДАКТИРОВАТЬ: после того, как я использую там "попробовать", это дает мне эту ошибку, если я положил нормальные входы: Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: <any>
at tema2.Tema2.main(Tema2.java:104)
C:\Users\VALENTIN-CLAUDIUCOST\AppData\Local\NetBeans\Cache\11.3\executor-snippets\run.xml:111: The following error occurred while executing this line:
C:\Users\VALENTIN-CLAUDIUCOST\AppData\Local\NetBeans\Cache\11.3\executor-snippets\run.xml:94: Java returned: 1
BUILD FAILED (total time: 2 seconds)