gpt4 book ai didi

java - 让通用 AsyncTask 处理任何异常

转载 作者:行者123 更新时间:2023-12-02 06:17:18 26 4
gpt4 key购买 nike

我创建了一个通用的 AsyncTask 类,以便我可以捕获执行 task 方法时抛出的所有异常:

public abstract class Poc<ParamType, ReturnType> 
extends AsyncTask<ParamType, String, ReturnType> {

abstract ReturnType task(ParamType... param);

@Override
protected ReturnType doInBackground(ParamType... param) {
try {
return task(param);
} catch (Exception e) {
// Make some Toast display the exception.
}
return null;
}

}

我尝试通过执行以下操作来实现上述类:

public class Use {

public static void runIt() {
new Poc<String, Boolean>() {
@Override
Boolean task(String... param) {
return SomeObject.someMethodThatCanThrowAnException(param);
}
}.execute("Some String");
}

}

但是,它一直提示要我添加 try/catch 语句。即使我知道 task 只会从包装它的 doInBackground 调用。

我能以某种方式抑制这个吗?或者,无需向 Poc 子类的每个类添加 try/catch 的正确方法是什么?

最佳答案

正如编译器试图告诉您的那样,您需要将您的函数声明为能够使用 throws Exception 抛出异常。

在这种情况下,您希望抽象方法能够抛出异常。

关于java - 让通用 AsyncTask 处理任何异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21342013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com