Koush离子on Completed回调 - 处理comcellationException



我正在遵循库斯创建的流行离子库的示例:下载带有进度栏的文件,我可以从他的一个样本中看到,可以使用downloading.cancel()

nb:downloading被声明为Future<File>

称为cancel()方法时,将其抛出CancellationException。我想特别处理这个例外,而不是一般捕获它。

我的第一个想法是包裹尝试/捕获块,并使用类似的东西:

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

但是,如果您查看他的示例,您会看到on Completed回调使用2个输入:Exception eFile result

这里的样本(第72行)显示了以下内容:

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

这似乎是尝试/捕获块的替代方法,如果存在异常,则可以将错误概括。但是,如果发现CancellationException,我的目标是返回其他吐司消息。

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

这是对我有用的解决方案:

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

最新更新