java - 在 java 中创建我们自己的异常类

标签 java exception

我想创建自己的异常类并捕获当用户按下输入对话框取消按钮时返回的空值。基本上如果用户按下取消我不希望程序崩溃。我怎么做。我想创建自己的异常类,因为我打算将其他自定义异常放入其中以供将来使用。

static private String showInputDialog()//utility function for userInput----------------
    {
        String inputValue = JOptionPane.showInputDialog("Please input something");

        if(inputValue.isEmpty() || !inputValue.matches("[A-Za-z]*"))
        {
            inputValue = showInputDialog();
        }

        return inputValue;
    }

//调用inputDialog的地方

public void actionPerformed(ActionEvent evt)
{  
       String firstName = showInputDialog();
       String lastName = showInputDialog();
}

最佳答案

异常是 inputValue 的 null 值的结果,您可以通过自己检查 null 来防止获取异常。

此外,您的方法现在在每次下一次迭代时都会递归。你想要在功能上实现的是“没有输入要求输入”。这将转化为:

//utility function for userInput----------------
static private String showInputDialog()
{
    String inputValue = null;

    do {
        inputValue = JOptionPane.showInputDialog("Please input something");
    }
    while (inputValue != null && (inputValue.isEmpty() || !inputValue.matches("[A-Za-z]*")));

    return inputValue;
}

关于java - 在 java 中创建我们自己的异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320964/

相关文章:

java - 安卓工作室 "Could not find method implementation() for arguments"

python - 如何从 python-can 接口(interface)中捕获 CAN 总线异常,例如 'Network down'?

没有参数的 Python 'raise' : what is "the last exception that was active in the current scope"?

oracle - Oracle中单个 'when'子句可以处理多种异常类型吗?

java - Mockito 抛出异常

JAVA & MySQL 不需要的额外列

java - For Loop NullPointerException 与 Apache POI

java - 无法将日期和时间转换为 LocalDateTime [Java]

java - 如何创建第一列始终位于 JScrollPane 视口(viewport)中的 JTable?

java - JDBC 结果集 - 没有可用数据