所以我是一種新的捕捉錯誤等。無論如何,該程序應該要求用戶輸入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