Я создал универсальный класс AsyncTask, так что я могу поймать все исключения, брошенные когда task
метод выполняется:Имея общий AsyncTask обрабатывать любые исключения
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
, который его обертывает.
Могу ли я как-то подавить это? Или что такое правильный подход, не добавляя try/catch к каждому классу, который подклассы Poc?
Вы прочитали ошибку? – SLaks