gpt4 book ai didi

Java:抛出和捕获异常以验证输入的正确方法

转载 作者:行者123 更新时间:2023-11-29 07:11:21 27 4
gpt4 key购买 nike

我正在编写一个家庭作业程序,我需要在其中验证用户输入,然后创建一个对象并将其添加到数组列表中。我已经包含了我认为是相关的代码,但我肯定是初学者,所以如果您还需要查看其他内容,请告诉我。

我让用户输入一个字符串,然后检查它是否为 double 字符串。如果它不是 double ,我会抛出一个我创建的异常

     try{
price = Double.parseDouble(strPrice);
}
catch(NumberFormatException nfe){
CDException cde = new CDException();
cde.setMessage("Price must be a number,\nCannot create CD");
throw cde;
}

在确保它是一个数字后,在我的另一个类中,我检查以确保它在我想要的范围内。 (在本例中为非负值)然后创建一个具有该值的对象

public void setPrice(double newPrice)throws Exception{
if(newPrice >= 0){
this.price = newPrice;
}
else{
CDException cde = new CDException();
cde.setMessage("CD Price cannot be negative,\nCannot create CD");
throw cde;
}
}

所以我的问题是...

有没有办法一步完成,检查用户输入的数字和数字是否为非负数。另一件事是,如果输入为空,那就是结束输入循环的指令。

最佳答案

好吧,您可以将您的代码更改为:

try {
price = Double.parseDouble(strPrice);
if (price < 0) {
throw new CDException("Can't be negative");
}
} catch (NumberFormatException ex) {
...
}

但问题是您是否真的愿意这样做。从设计的角度来看,在 setPrice 中进行“否定”检查可能更有意义,而不是将其作为解析逻辑的一部分进行。

关于Java:抛出和捕获异常以验证输入的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638954/

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