Java异常处理无效输入

标签 java exception input exception-handling

<分区>

我正在尝试 Java 的异常处理。

我无法从文档中理解如何执行此操作,但我想做的是检测我的开关的无效输入,以便在激活默认情况时抛出错误。这对我来说可能是不正确的逻辑,但我想知道是否有人可以用简单的英语将我推向正确的方向。

char choice = '0';
while (choice != 'q'){
     printMenu();
     System.in.read(choice);

     case '1': DisplayNumAlbums();
     case '2': ListAllTitles();
     case '3': DisplayAlbumDetail();
     case 'q': System.out.println("Invalid input...");
     return;
     default: System.out.println("Invalid input...");
     //Exception handling here
     //Incorrect input
 }            

最佳答案

我假设您的错误是经过深思熟虑的,因此我将使用您自己的代码来制作您要求的用法示例。因此,拥有一个正在运行的程序仍然是您的责任。

异常处理机制是为了让您在达到某些错误条件时抛出异常,就像您的情况一样。假设您的方法名为 choiceOption,您应该这样做:

public void choiceOption() throws InvalidInputException {
    char choice = "0";

    while (choice != "q"){
        printMenu();

        System.in.read(choice);
        switch(choice){
        case "1": DisplayNumAlbums();
        case "2": ListAllTitles();
        case "3": DisplayAlbumDetail();
        case "q": System.out.println("Invalid input...");
                  return;
        default: System.out.println("Invalid input...");
                 throw new InvalidInputException();
        }
    }
}

这让您可以在客户端捕获抛出的异常(您拥有的任何客户端:文本、胖客户端、Web 等)并让您采取自己的客户端操作,即如果您使用的是 swing 或添加一个 JOptionPane如果您使用 JSF 作为 View 技术,则会面临消息。

请记住,InvalidInputException 是一个必须扩展 Exception 的类。

关于Java异常处理无效输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12119100/

相关文章:

java - 如何计算 Java 文本文件中的括号和大括号?

java - 单击按钮后如何将 RecyclerView 适配器中的对话框的详细信息与另一个 fragment 相匹配

Javascript oninput : How to prevent firing on blur (mobile)?

javascript - 输入 - 移动浏览器上仅输入数字

java - 使用 a-z 输入进行循环

java - 从 jcombobox 获取数据并将其转换为 float

java - 使用 EJB 的无状态工厂

c++ - 是否有一种模式可以依次执行多个 throw 函数?

c++ - 如果抛出的值匹配多个 catch 子句会发生什么?

python - 如何将 Azure Python SDK 异常添加到 try/except 语句?