Java Koush Ion onCompleted回调-句柄取消异常

Java Koush Ion onCompleted回调-句柄取消异常,java,android,exception-handling,asynccallback,ion-koush,Java,Android,Exception Handling,Asynccallback,Ion Koush,下面是Koush创建的流行离子库的一个示例:从中可以看出,可以使用downloading.cancel()发送取消 注意:下载被声明为未来 调用cancel()方法时,它会抛出CancellationException。我想专门处理这个异常,而不是一般地捕获它 我的第一个想法是包装一个try/catch块,并使用如下内容: try { //... } catch (CancellationException ce) { //... } 但是,如果查看,您将看到未完成的回调使用

下面是Koush创建的流行离子库的一个示例:从中可以看出,可以使用
downloading.cancel()
发送取消

注意:
下载
被声明为
未来

调用
cancel()
方法时,它会抛出
CancellationException
。我想专门处理这个异常,而不是一般地捕获它

我的第一个想法是包装一个try/catch块,并使用如下内容:

try { 
    //...
} catch (CancellationException ce) {
    //...
}
但是,如果查看,您将看到未完成的回调使用两个输入:
Exception e
File result

示例显示:

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

这似乎是try/catch块的替代方法,try/catch块在异常存在时泛化错误。但是,如果捕获到
取消异常
,我的目标是返回不同的toast消息。

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

这是适合我的解决方案:

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

您必须编写自定义异常。