gpt4 book ai didi

java - 如何使我的 catch block 返回到方法中的 try block ?

转载 作者:行者123 更新时间:2023-12-01 16:45:30 24 4
gpt4 key购买 nike

对于我的 java 类,我们将要求用户输入,因此我决定创建一个仅返回整数值的方法。当我运行 main 并输入 double 时,它​​返回 0 并且不会返回 try block 以从用户处获取另一个值。捕获异常后不是应该回到try block 吗?

import java.util.Scanner;
import java.util.InputMismatchException;


class MyMethods {


public static int getInteger() {

Scanner keyboard = new Scanner(System.in);
int integer = 1;


try {

System.out.println("Please enter integer");
integer = keyboard.nextInt();

}
catch(InputMismatchException e ) { //if anything besides an integer is entered we will catch here and go back to try block.

System.out.println("Please enter integer only!");

}


return integer;

}


}//end class

下面是测试

class methodTest  {

public static void main(String[] args) {


int integerTest = MyMethods.getInteger();
System.out.println(integerTest);//prints 0 if double is entered


}//end main


}//end class

最佳答案

这里的一个选择是使用循环不断提示用户输入,直到收到有效值:

public int getInteger() {
Scanner keyboard = new Scanner(System.in);
Integer value = null;

while (value == null) {
try {
System.out.println("Please enter integer");
value = keyboard.nextInt();
}
catch (InputMismatchException e) {
System.out.println("Please enter integer only!");
}
}

return value;
}

关于java - 如何使我的 catch block 返回到方法中的 try block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52324107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com