У меня есть некоторые практические проблемы, и текущая проблема, над которой я работаю, заключается в том, что я постоянно проверяю окружающие значения в двумерном массиве.
Мне интересно, каков наилучший способ обработки out of bounds exceptions
длятакая проблемаДолжен ли я использовать try-catch
блоки для каждого проверяемого индекса? Часть catch не использовалась бы в этом случае, так как я не хотел бы ничего печатать или завершать программу в случае ошибки. Вот почему я думаю, что может быть лучший способ справиться с этим.
Это некоторый упрощенный код для "проверки индекса"
private static void findRoute(String[][] area, int currentRow, int currentCol) {
int row = currentRow;
int col = currentCol;
while(!area[row][col].equals("D")) {
try {
checkRight(area, row, col);
} catch(IndexOutOfBoundsException io) {
//Move on
}
try {
checkLeft(area, row, col);
} catch(IndexOutOfBoundsException io) {
//Move on
}
}
}
Так, например, если первый try-catch block
приводит к ошибке, я бы хотел, чтобы она переместилась на следующую try-catch
для проверки следующего значения.
Однако, если ошибки нет, я хочу проверить значение по индексу, который былиспользуя блок try-catch
. Но если я добавлю оператор после try-catch, чтобы получить значение checkRight()
, и ошибка в try-catch
будет выдана, то это просто выдаст мне ошибку, и программа вылетит.
Должен ли я обращаться с этим по-другому? Есть ли более простой способ справиться с этим с помощью if-statements
или чем-то еще?