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());
}
}
这似乎至少接近您要查找的内容。
嘿,所以在我的 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()
:
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());
}
}
这似乎至少接近您要查找的内容。