【发布时间】:2017-05-25 10:27:42
【问题描述】:
我对 Java 和 Android 开发还很陌生。看了AsyncTask的代码,看到类抛出了3个异常:
InterruptedExceptionExecutionException-
TimeoutException
当我在AsyncTask对象上运行execute方法时,如果我没有捕捉到InterruptedException和ExecutionException,为什么编译器会报错,但没有报错TimeoutException?
更一般地说,我们如何知道需要捕获哪些异常? (当然我会查看编译器错误并编写缺少的 catch 块,但我想了解其背后的原理)。
非常感谢!
Example code:
public void test() {
AsyncTask at = new AsyncTask() {
@Override
protected Object doInBackground(Object[] params) {
return null;
}
};
Object o;
try {
o = at.execute().get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
编辑:我检查了TimeoutException 是一个已检查的异常(应该被捕获)。但是@NicolasFilotto 已经回答了我的问题。谢谢大家。
【问题讨论】:
-
我检查了 TimeoutException 是一个已检查的异常。但是@NicolasFilotto 已经回答了我的问题。谢谢大家。
标签: java android android-asynctask exception-handling timeoutexception