InputMisMatch Exception
在Java中。我有用户输入两个数字,如果它们不相同,则输入不匹配异常将打印出一条消息。但是它没有打印消息。我做错了什么。
package Day4;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Calculator {
int num1 = 0;
int num2 = 0;
void add(){
Scanner sc = new Scanner(System.in);
System.out.println("enter two numbers:");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
try {
try{
System.out.println(num1 + num2);
}
catch(InputMismatchException e)
{
num1 = sc.nextInt();
num2 = sc.nextInt();
System.out.println("Invalid Character");
}
}
catch (ArithmeticException ae)
{
System.out.println("Invalid Number Try again");
}
}
public static void main(String[] args) {
Calculator c = new Calculator();
c.add();
// TODO Auto-generated method stub
}
}
答案 0 :(得分:0)
首先,我建议您阅读有关try和catch块如何工作以及如何工作的信息。
所以根据你的代码,我假设你想阻止用户输入非整数
现在回答:
抛出异常的代码行是:
int num1 = sc.nextInt();
int num2 = sc.nextInt();
不
System.out.println( num1 + num2 );
所以正确的做法是:
System.out.println( "enter two numbers:" );
try {
int num1 = sc.nextInt();
int num2 = sc.nextInt();
System.out.println( num1+num2 );
}
catch(InputMismatchException e){
System.out.println("Invalid Character");
}
由于两者都已经 int
,因此不会抛出AritmethicException