在过去的几个月中,我几次遇到以下情况。
假设您有一些具有几种不同结果的逻辑,所有这些逻辑都返回值。在这种逻辑中,没有没有无法处理的情况,最终回报声明怎么办?
下面是一个粗略的示例,但我只是想找出返回堆栈的最佳值/对象是什么?这是什么标准做法?
for (int i = 10; i > 0; i--) {
if (i ==5) {
return String.valueOf(i);
}
if (i == 6) {
return String.valueOf(i);
}
}
return "this will never get returned";
答案 0 :(得分:2)
引发新的异常,说明存在无法处理的意外行为。
for (int i = 10; i > 0; i--) {
if (i ==5) {
return String.valueOf(i);
}
if (i == 6) {
return String.valueOf(i);
}
}
throw new RuntimeException("Unexpected error occured");
答案 1 :(得分:1)
一种防御编程方法是仅在方法/函数的末尾返回值。
String myFunction() {
String returnValue = null;
for (int i = 10; i > 0; i--) {
if (i == 5) {
returnValue = String.valueOf(i);
break;
}
if (i == 6) {
returnValue = String.valueOf(i);
break;
}
}
// Validate return value when necessary
// if (returnValue == null) {
// throw new AssertionError("Return value not set!");
// }
return returnValue;
}
答案 2 :(得分:0)
您可以返回Optional。
Optional<String> getIfExists() {
...
return Optional.empty();
}