Я следую примеру популярной библиотеки Ion, которую создал Koush: Download a File with a progress bar, и я могу видеть от one of his samples, что можно отправить отмену с помощью downloading.cancel()
.Koush Ion onCompleted callback - handle CancellationException
NB: downloading
был объявлен как Future<File>
.
При вызове метода cancel()
он выбрасывает CancellationException
. Я хотел бы обработать это исключение специально, вместо того, чтобы ловить его в целом.
Моя первая мысль, чтобы обернуть попробовать/поймать блок, и использовать что-то вроде:
try {
//...
} catch (CancellationException ce) {
//...
}
Однако, если вы посмотрите на his example, вы увидите, что обратный вызов OnCompleted использует 2 входа: Exception e
и File result
.
Образец here (line 72) показывает это:
if (e != null) {
Toast.makeText(ProgressBarDownload.this, "Error downloading file", Toast.LENGTH_LONG).show()
return;
}
Это, как представляется альтернатива/поймать блок Ьги который Обобщая ошибку, если существует исключение. Однако моя цель - вернуть другое сообщение тоста, если поймал CancellationException
.
вы должны написать специальное исключение. – Radhey