0

我的 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)

我不确定为什么这个异常没有得到处理?

4

1 回答 1

0

我遇到了类似的问题,没有处理异常。它通常通过使用一个 catch 语句处理异常来解决,不要问我如何解决,但我确信这背后有一个很好的理由。您是否尝试过删除catch(IOException e)并保留catch(Exception e)

瑞安

于 2011-06-22T00:45:29.120 回答