gpt4 book ai didi

java - 仅第一次捕获异常,第二次捕获异常

转载 作者:行者123 更新时间:2023-12-01 19:11:16 26 4
gpt4 key购买 nike

在简单的 java 程序中实现自定义异常。第一次,我给出无效输入,自定义异常会按照预期抛出,但是当我第二次尝试执行此操作时,应用程序停止。为什么?

    try {
int option = getQuote.ask("Enter the options");
switch (option) {
case 1:
System.out.println("Current balance is " + user.getAccountBalance() + TvConstants.RS);
break;
case 2:
optionService.addRecharge(user, getQuote);
break;

case 10:
System.exit(1);
default:
throw new InvalidInputException("", CON.ST001, CON.ST001MESSAGE);
}
} catch (InputMismatchException e) {
throw new InvalidInputException("", CON.ST001, CON.ST001MESSAGE + "");
} catch (InvalidInputException e) {
System.out.println(e.getErrorCode() + ":" + e.getErrorMessage());
}

主要方法:

    public static void main(String[] args) {
Service service = new Service();
try {
service.mainMenu(user, new InputAsker(System.in, System.out), false);
} catch (InvalidInputException e) {
System.out.println(e.getErrorCode() + ":" + e.getErrorMessage());
service.mainMenu(user, new GetQuote(System.in, System.out), false);
}

}

控制台:

Enter the options
2
Enter the amount to recharge:
as
ST001:Invalid Input- Please select numeric value.
********************
Enter the options
2
Enter the amount to recharge:
as
Exception in thread "main" com.exceptions.InvalidInputException:

我哪里出错了?

最佳答案

为了捕获 main 方法中的 InvalidInputException,您需要将其抛出到服务中。

 } catch (InputMismatchException e) {
throw new InvalidInputException("", CON.ST001, CON.ST001MESSAGE + "");
} catch (InvalidInputException e) {
System.out.println(e.getErrorCode() + ":" + e.getErrorMessage());
}

从此处删除第二个 catch block 。

关于java - 仅第一次捕获异常,第二次捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59479988/

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