Проверьте значения и сгенерируйте исключение - PullRequest
0 голосов
/ 19 декабря 2018

Мне нужно проверить startIndex и endIndex и выдать исключение IndexOutOfBoundsException, если они недействительны.Я пытаюсь бросить исключение специально.Этот код выдает исключение, но останавливает программу.Мне нужно обработать исключение и продолжить программу.Мне нужна помощь с этим кодом.Заранее спасибо

public int findMinReadingIndex2(int startIndex, int endIndex) {
        if (startIndex < 0 || endIndex < 0 || endIndex >= this.sensorReadings.size())
                throw new IndexOutOfBoundsException("Index out of bounds: 0 - " + (this.sensorReadings.size() - 1));
        else
            sensorReadings.get(startIndex);
            int minIndex = 0;
            startIndex = -1;
            endIndex = 18;
                for (int i = startIndex; i < sensorReadings.size(); i++) {
                    if (i >= startIndex && i <= endIndex) {
                    if (this.sensorReadings.get(minIndex).getValue() < this.sensorReadings.get(i).getValue())
                        minIndex = i;
                }
            }
            return minIndex;
        }

1 Ответ

0 голосов
/ 19 декабря 2018

Я думаю, что вы должны попытаться использовать try-catch вместо оператора if.Я не гарантирую, что это будет работать - но это определенно будет шагом в правильном направлении ... Что-то вроде:

try {
    sensorReadings.get(startIndex);
            int minIndex = 0;
            startIndex = -1;
            endIndex = 18;
                for (int i = startIndex; i < sensorReadings.size(); i++) {
                    if (i >= startIndex && i <= endIndex) {
                    if (this.sensorReadings.get(minIndex).getValue() < this.sensorReadings.get(i).getValue())
                        minIndex = i;
                }
            }
            return minIndex;
}
catch(IndexOutOfBoundsException exception) {
    handleTheExceptionSomehow(exception);
    //Program should continue just fine
}
...