Всем привет. Интересует вопрос, можно ли из блока catch снова вернуться в этот блок catch? Вот код:
try {
model = mNetworkDataManager.getModel(mUserScore.get(qNum));
} catch (IOException e) {
Log.e(TAG, "Данные не дошли. Сообщение: " + e.getMessage());
model = mNetworkDataManager.getModel(mUserScore.get(qNum));
}
суть в том, что если данные не дошли (бывает), мне нужно повторить запрос. Но компилятор требует, чтобы я строку "model = ..." в блоке catch опять поместил в конструкцию try - catch. Мне нужно добиться того, чтобы model != null. Как это можно сделать? Данные, кстати, загружаю через retrofit2
Вот так в цикле, возможно, будет лучше читаемо чем рекурсия.
Model model = null;
int attempts = 3;
do {
try {
model = mNetworkDataManager.getModel(mUserScore.get(qNum));
} catch (IOException e) {
Log.e(TAG, "Данные не дошли. Сообщение: " + e.getMessage());
}
attempts--;
} while (attempts > 0 && model == null);
int count = 0;
int tries = 3;
while(true) {
try {
// КОД
} catch (Exception e) {
// Описание ошибки
if (++count == tries) throw e;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Опять нужна помощьПри первом запуске только что написанного кода проблем нет
Требуется библиотека java для обработки изображенияТребуется возможность создания, попиксельного редактирования и сохранения изображения...