【发布时间】:2016-11-08 11:05:10
【问题描述】:
我经常遇到这个问题。让我们看一个简单的例子,我得到了这个简单的方法:它在String[] 中检索String 的位置。
public int getStringPosition(String s, String[] text) {
for (int i = 0; i < text.length; i++) {
if (text[i].equals(s)) {
return i;
}
}
return text.length;
}
但是如果字符串不在数组中怎么办?在这里,它返回数组的大小(一个int,它不能来自正常使用该方法)。它也可以返回-1。我希望它会返回 null 但这似乎是不可能的。
不管怎样,这个方法会在同一个类中被其他一些方法使用。我的问题很笼统,如何处理无法返回预期内容的情况?
【问题讨论】:
-
抛出异常...
-
异常应该怎么办?如何警告用户该方法并仍然让他继续他的程序流程?
-
尽管@Hackerdarshi 说过,另一方面,例如
String方法如何工作,也可能返回-1,例如String#indexOf,如果您返回原始类型. -
@Fitz,通过捕获异常以防它被抛出,就像所有异常一样:)
-
@Fitz 是的。您的代码抛出异常,调用该方法的部分捕获它。