Koush Ion onCompleted回调 - 处理CancellationException

时间:2016-11-22 18:51:29

标签: java android exception-handling asynccallback ion-koush

我正在关注Koush创建的流行离子库的示例:Download a File with a progress bar我可以从one of his samples看到可以使用downloading.cancel()发送取消。

注意:downloading被声明为Future<File>

调用cancel()方法时会抛出CancellationException。我想特别处理这个例外,而不是一般地处理它。

我的第一个想法是包装一个try / catch块,并使用类似的东西:

try { 
    //...
} catch (CancellationException ce) {
    //...
}

但是,如果您查看his example,您会看到onCompleted回调使用了2个输入:Exception eFile result

示例here (line 72)显示了这一点:

if (e != null) {
    Toast.makeText(ProgressBarDownload.this, "Error downloading file", Toast.LENGTH_LONG).show()
    return;
}

这似乎是try / catch块的替代方法,如果存在异常,则会导致错误。但是我的目的是在CancellationException被捕获时返回不同的toast消息。

1 个答案:

答案 0 :(得分:1)

要单独处理异常,我们可以在抛出的异常e的实例中查找异常类型。

这是适合我的解决方案:

if (e instanceof CancellationException) {
  //CancellationException was found
}