gpt4 book ai didi

java - 我需要提供单独的异常语句。 1. 空字符串和 2. 有效数字数据

转载 作者:行者123 更新时间:2023-12-02 08:19:35 24 4
gpt4 key购买 nike

try{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println(" Enter the Amount of articles to be ordered.");
amount = reader.readLine();

if(amount.trim().isEmpty()){
System.out.println("Amount Entered is Empty");
}

for(int count=0;count<amount.length();count++){
if(!Character.isDigit(amount.charAt(count))){
throw new NumberFormatException();
}
}
order.validateAmount(amount);
}catch(NumberFormatException numbere){
System.out.println("Either Number format is uncorrect or String is Empty, Try Again.");
}

上面的代码为我提供了针对空字符串异常和无效数字数据异常的单个 println() 语句,这是我不想要的。我想要两个异常的单独 println() 语句。如何获得?

最佳答案

  1. 您可以使用两个不同的异常,例如 NumberFormatExceptionIllegalArgumentException 并执行两个不同的 catch-子句

        ...
    if (amount.isEmpty())
    throw new IllegalArgumentException();
    ...

    } catch (NumberFormatException numbere) {
    System.out.println("Either Number format is uncorrect, Try Again.");
    } catch (IllegalArgumentException empty) {
    System.out.println("String is empty, Try Again.");
    }
  2. 使用相同的异常,但使用不同的消息:

    try {
    BufferedReader reader = new BufferedReader(new InputStreamReader(
    System.in));
    System.out.println(" Enter the Amount of articles to be ordered.");
    String amount = reader.readLine();

    if (amount.trim().isEmpty()) {
    System.out.println("Amount Entered is Empty");
    }

    if (amount.isEmpty())
    throw new IllegalArgumentException("String is empty.");


    for (int count = 0; count < amount.length(); count++)
    if (!Character.isDigit(amount.charAt(count)))
    throw new IllegalArgumentException("Number format incorrect.");

    order.validateAmount(amount);
    } catch (IllegalArgumentException e) {
    System.out.println(e.getMessage() + " Try again.");
    }
  3. 或者,您可以使用两个不同的构造函数推出自己的异常,并使用一个标志来说明异常是由于错误数字还是空字符串造成的.

关于java - 我需要提供单独的异常语句。 1. 空字符串和 2. 有效数字数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5740212/

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