-2

私はから取得-1していresponseます。この例外が発生します。この例外を処理して、 my に一致しない整数を避けることができますArray

Constants.Friends[Integer.parseInt(custom.getFriendsList())]

たとえば、私の配列が 4 つのアイテムを保持している場合。

String[] MyList = {"One","Two","Three","Four"};

-1 または 3 より大きい値を取得した場合、どうすればそれらを処理できますか。

4

2 に答える 2

7

ArrayIndexOutOfBoundsExceptionこれは、プログラムの制御外の条件とは対照的に、一般にプログラミング エラーを通知することを意味する未チェックの例外です。これらの例外は、処理するのではなく、防止する必要があります。

この特定のインスタンスでは、次のように、値をインデックスとして配列に渡す前に確認する必要があります。

int pos = Integer.parseInt(custom.getFriendsList());
if (pos < 0 || pos >= Constants.Friends.length) {
    // Handle the error and exit or re-read the pos
}
// Accessing Friends[pos] is safe now:
String friend = Constants.Friends[pos];
于 2013-05-09T17:18:40.957 に答える
1
int index = Integer.parseInt(custom.getFriendsList());
if (index < 0 || index > list.length)
{
    //notify user that input is invalid retry getting input
}
else
{
    return list[index];
}

これでうまくいくはずです。インデックスが無効な場合にどうなるかわからないので、開いたままにしました。

于 2013-05-09T17:19:16.443 に答える