我的AsyncTask中有以下内容:
@Override
protected Void doInBackground(Context... c) {
try {
context = c[0];
myLocation = new Geocoder((Activity)context, Locale.getDefault());
if(myLocation.isPresent())
myList = myLocation.getFromLocation(LocationHandler.getLat(), LocationHandler.getLon(), 1);
}
catch (IOException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
如果我在没有网络连接的情况下运行此AsyncTask,我的应用程序将使用以下堆栈输出强制关闭:
java.io.IOException: Unable to parse response from server
at android.location.Geocoder.getFromLocation(Geocoder.java:136)
at com.soyo.winnipegtransit.location.UpdateGeoCoderName.doInBackground(UpdateGeoCoderName.java:44)
at com.soyo.winnipegtransit.location.UpdateGeoCoderName.doInBackground(UpdateGeoCoderName.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)
我不确定为什么这个例子没有处理?
答案 0 :(得分:0)
我遇到了类似的问题,没有处理异常。它通常只用一个catch语句来处理异常就解决了,不要问我怎么做,但我确定这背后有一个很好的理由。您是否尝试删除catch(IOException e)
并保留catch(Exception e)
?
赖安