Java 让我的函数同时显示错误消息和返回布尔值可以吗?
我正在创建一个函数,如果存在某种错误,它将返回true或false。当前,如果发生错误,将显示一个带有错误的弹出窗口,并且函数返回false。如果没有错误,那么它只返回true 我的问题是: 我的方法返回一个布尔值并显示一个弹出窗口可以吗?或者我应该让我的方法返回一个值(int或boolean),然后根据该返回值显示一条错误消息(如果需要) 下面是一个有帮助的示例:Java 让我的函数同时显示错误消息和返回布尔值可以吗?,java,exception-handling,Java,Exception Handling,我正在创建一个函数,如果存在某种错误,它将返回true或false。当前,如果发生错误,将显示一个带有错误的弹出窗口,并且函数返回false。如果没有错误,那么它只返回true 我的问题是: 我的方法返回一个布尔值并显示一个弹出窗口可以吗?或者我应该让我的方法返回一个值(int或boolean),然后根据该返回值显示一条错误消息(如果需要) 下面是一个有帮助的示例: private boolean correctFormat() { if (error1) { //display pop
private boolean correctFormat() {
if (error1) {
//display pop up for error1
} else if (error2) {
//display pop up for error2
}
...
else {
return true;
} //no errors
return false; //there was an error
}
其他选择:
private int correctFormat() {
if (error1) {
return 1;
} else if (error2) {
return 2;
}
...
else {
return 0;
} //no error
}
private void checkFormat() {
int result = correctFormat();
if (result == 1) {} //display pop up for error1
else if (result == 2) {} //display pop up for error2
...
else {} //result == 0, no error, do nothing
}
您应该使用异常来传达错误条件,而不是返回布尔值:
您不应该同时通知调用方和用户异常,以免调用方再次通知用户。我曾在报告相同错误的系统上工作过不少于4次。每个异常都应该报告一次,而且只能报告一次。这属于stackexchange站点,名为“review”。这很好。如果不这样做,您将无法检查发生的错误。第二种解决方案是标准错误代码解决方案,也可以。但在某些情况下,可以使用异常进行错误处理。在生成异常的函数中处理异常可能不是正确的设计。如果是这种情况,您必须返回一个包含更多信息的值(例如整数错误代码)。@MateuszDryzek是一个首选项,而不是另一个?@NickMiller,那么第二个选项是更好的选择?