【发布时间】:2017-04-06 13:55:55
【问题描述】:
我正在关注 Koush 创建的流行 Ion 库的示例: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 e 和 File result。
样本here (line 72) 显示:
if (e != null) {
Toast.makeText(ProgressBarDownload.this, "Error downloading file", Toast.LENGTH_LONG).show()
return;
}
这似乎是 try / catch 块的替代方案,如果存在异常,则会概括错误。但是,如果CancellationException 被捕获,我的目标是返回不同的吐司消息。
【问题讨论】:
-
你必须编写自定义异常。
标签: java android exception-handling asynccallback ion-koush