verfolge ich ein Beispiel für die beliebte Ion-Bibliothek, die Koush erstellt: Download a File with a progress bar und ich kann von one of his samples sehen, dass es möglich ist, eine Stornierung downloading.cancel()
mit zu senden.Koush Ion OnCompleted Rückruf - Griff CancellationException
Anm .: downloading
wurde als Future<File>
deklariert.
Wenn die Methode cancel()
aufgerufen wird, wird eine CancellationException
ausgelöst. Ich möchte diese Ausnahme speziell behandeln, anstatt sie allgemein zu erfassen.
Mein erster Gedanke ist es, einen try/catch-Block wickeln, und verwenden Sie so etwas wie:
try {
//...
} catch (CancellationException ce) {
//...
}
Doch wenn man sich his example anschauen, werden Sie sehen, dass die OnCompleted Rückruf verwendet 2 Eingänge: Exception e
und File result
.
Die Probe here (line 72) zeigt dies:
if (e != null) {
Toast.makeText(ProgressBarDownload.this, "Error downloading file", Toast.LENGTH_LONG).show()
return;
}
Dies ist eine Alternative zu einem try/catch-Block zu sein scheint, die einen Fehler zu verallgemeinern, wenn eine Ausnahme vorliegt. Allerdings möchte ich eine andere Toast-Nachricht zurückgeben, wenn die CancellationException
abgefangen wurde.
Sie haben benutzerdefinierte Ausnahme zu schreiben. – Radhey