gpt4 book ai didi

java - 如何找出哪个变量抛出异常?

转载 作者:行者123 更新时间:2023-11-30 07:07:14 25 4
gpt4 key购买 nike

我正在编写一个程序,根据账单和小费率计算小费和总额。

public void takeUserInput() {
Scanner sc = new Scanner(System.in);
double billAmount;
int tipRate;

try {
System.out.print("What is the bill? ");
billAmount = sc.nextDouble();
System.out.print("What is the tip percentage? ");
tipRate = sc.nextInt();

tc.calculate(billAmount, tipRate);
} catch (InputMismatchException e1) {
String errorMessage = "Please enter a valid number for the ";
// errorMessage += billAmount or
// errorMessage += tipRate ?
}

我正在寻找一种方法来找出哪个变量抛出 InputMismatchException,这样我就可以将哪个变量名称添加到变量 errorMessage 中并打印到屏幕上。

最佳答案

有多种简单的方法可以到达那里:

  1. 在调用 nextXxx() 之前调用 hasNextXxx()
  2. 如果您对每个输入使用一个 try/catch block ,则在您的 catch block 中非常清楚哪个变量导致了问题(然后您可以调用带有特定错误消息的通用方法,以避免代码重复)
  3. 您可以为变量使用引用类型;如果您使用 Double/Integer 而不是 double/int ...您可以检查两个变量中哪一个仍然为 null
  4. 您输入一个小 boolean 变量,例如 billAmountIsValid。最初该变量为 false,在调用 nextDouble() 后将其变为 true。然后您可以轻松地在 try block 中检查您是否获得了有效的 billAmount。

经过更多思考:您确实想要 1 + 2 的组合:您瞧;当用户输入正确的账单金额时;当第二个值给出错误的第二个值时,为什么您想要忘记该值?不 - 您应该对每个变量进行循环,直到收到有效输入。然后你才开始询问下一个值!

关于java - 如何找出哪个变量抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39882635/

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