Я работаю над решателем sudoku, и метод solve дает ошибку, которую я временно «решил» с исключением try и catch.Удаление исключения try/catch
Однако, я немного обеспокоен тем, что я одеваю ArrayIndexOutOfBoundsException
. Я просто хочу исправить ошибку, а не скрывать ее в исключении try/catch.
Это то, что попытка/улов выглядит следующим образом:
try {
if (puzzle.getNum(i, j) != puzzle.blank)
return solve(nexti, nextj);
} catch (ArrayIndexOutOfBoundsException e) {
return true;
}
Я думаю, что с тех пор я уже получил информацию, когда x > 8
пришло время изменить строку, что приводит к y++
. А когда y > 8
, программа должна быть выполнена, поскольку все ячейки 81 (9x9) заполнены.
Я думаю вокруг линий изменения методы попробовать/поймать для простого
if((i > 8) && (j > 8)){
return true;
}
, но это дает мне кучу ошибок, а также.
Я уверен, что исправление очень просто, но концептуально важно.
что бросает исключение из-за пределов (я не вижу доступа к массиву)? – Daedalus
- это номер строки? – ITroubs
Возможно ли это сделать, изменив условие 'if', которое вы предложили, используя || вместо &&? – jmrodrigg