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

例外が処理されないという同様の問題がありました。通常、1 つの catch ステートメントで例外を処理するだけで解決されます。方法は聞かないでください。ただし、これには十分な理由があると確信しています。を削除しcatch(IOException e)てそのままにしてみましたcatch(Exception e)か?

ライアン

于 2011-06-22T00:45:29.120 に答える