【发布时间】:2022-01-18 07:22:58
【问题描述】:
这是我的类 Person() 方法 inputPersonInfo():
Scanner sc = new Scanner(System.in);
System.out.println("Input Information of Person");
System.out.println("Please input name");
name = checkInputString();
System.out.println("Please input address");
address = checkInputString();
System.out.println("Please input salary");
salary = checkInputSalary();
return new Person(name,address,salary);
}
这是我对输入法的检查:
public static String checkInputString() {
//loop until user input true value
while (true) {
String s = in.nextLine();
if (s.isEmpty()) {
System.err.println("Not empty.");
} else {
return s;
}
}
}
// check if salary is smaller than 0
public static double checkInputSalary() {
//loop until user input true value
while (true) {
try {
double salary = Double.parseDouble(in.nextLine());
if (salary < 0) {
System.err.println("Salary is greater than zero");
System.out.print("Please input salary: ");
} else {
return salary;
}
} catch (NumberFormatException ex) {
System.err.println("You must input digidt.");
System.out.print("Please input salary: ");
}
}
}
如果不使用上面的 checkinput method(),我怎么能在这个方法中抛出异常?
public Person inputPersonInfo (String name, String address, Double salary) throws Exception {}
这是我的主类(),我需要在我的主类中抛出任何异常吗?:
System.out.println("=====Management Person programer=====");
//call constructor Person
Person p = new Person();
//enter 3 person
for (int i =0; i< 3 ;i++){
persons[i] = p.inputPersonInfo(p.getName(), p.getAddress(), p.getSalary());
}
【问题讨论】:
-
不清楚你在问什么。请详细说明。
-
@tgdavies 我使用 checkinputSalary() 方法检查字符串薪水是否不是双倍,小于 0,它将打印“错误”并循环直到用户输入正确,然后我调用它在 inputPersonInfo(String String Double) 中进行检查,但现在我的老师要求我使用 inputPersonInfo(String String Double) throws Exception{} 所以我不能再使用外部方法了