所以我是一种新的捕捉错误等。无论如何,该程序应该要求用户输入2个整数,然后将它们加在一起。很简单,但如果其中任何一个数字都不是整数,则会引发错误。目前,如果我输入2个整数,而不是添加它们,它只是重新启动getAnswer()方法并再次输出它们。此外,如果您输入多个错误,它将简单地退出。Java异常处理
package javaapplication1;
import java.util.InputMismatchException;
import java.util.Scanner;
public class JavaApplication1 {
public static void main(String[] args) {
Intro();
System.out.println("Your answer: "+getAnswer());
}
private static void Intro() {
System.out.println("Hello this program adds 2 integers together and catches errors.");
getAnswer();
}
private static int getAnswer() throws InputMismatchException {
Scanner scanner = new Scanner(System.in);
try {
System.out.println("Please input a number");
int num1 = scanner.nextInt();
System.out.println("Please input a second number");
int num2 = scanner.nextInt();
return num1+ num2;
} catch (InputMismatchException exp) {
System.out.println("Exception thrown");
return 0;
}
}
}
您是否曾尝试在'getAnswer()'方法中加入调试点并逐步完成调试?此外,如果您遇到特殊类型的异常,方法签名不再需要说'抛出异常'。 –
“目前,如果我输入2个整数,而不是添加它们,它只是重新启动getAnswer()方法并再次输出” - 是的,因为您的程序包含两个对'getAnswer'的调用,并且将第一个结果丢弃。 – user2357112
你不想让它退出? – Henry