【问题标题】:Koush Ion onCompleted callback - handle CancellationExceptionKoush Ion onCompleted 回调 - 处理 CancellationException
【发布时间】: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 eFile 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


【解决方案1】:

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

这是适合我的解决方案:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多