Try / Catch 不显示异常错误信息

Try / Catch not displaying Exception error message

嘿,所以在我的 class 我写了这个:

public void setId(String id) { ...
    if (id.matches("[a-zA-Z]{3}-\d{4}")) {
        this.id = id;
    } else { // id is invalid: exception occurs
        throw new IllegalArgumentException("Inventory ID must be in the "
            + "form of ABC-1234");
    }

}

然后在我的主程序中我这样做了:

while (idLoopTrigger == true) {
        try {

            System.out.println("Please enter id: ");
            id = in.nextLine();

            if (id.matches("[a-zA-Z]{3}-\d{4}")) {
                idLoopTrigger = false;
            }

        } catch (Exception ex) {

            //print this error message out
            System.out.println(ex.getMessage());

        }

    }

因此它将循环直到用户输入正确的信息,但它不会显示来自我的 class 的异常消息。想法?

您似乎在近似 main()setId() 方法的内容,而不是调用它。

我不确定这个 setId() 方法应该存在于何处,但假设它在与您的 main():

相同的 class 中定义
while (idLoopTrigger == true) {

    try {
        System.out.println("Please enter id: ");
        id = in.nextLine();
        setId(id);
        idLoopTrigger = false;

    } catch (Exception ex) {

        //print this error message out
        System.out.println(ex.getMessage());
    }

}

这似乎至少接近您要查找的内容。