0

私は、Webからいくつかのデータ(この場合はXKCDコミック)を取得して携帯電話に表示するための小さなテストアプリに取り組んでいます。これはAndroidプログラミングへの私の最初の進出であり、Javaの経験があまりないので、野心的ではありません。私はAndroidでやりたいのと同じ機能を実行するプログラムをJavaで正常に作成しました。それは素晴らしい動作をしますが、Javaで動作するコードの一部は、Androidで強制的に閉じます。具体的には、この小さなコードブロック:

try {
        home = Jsoup.connect("http://www.xkcd.com").get();
        Log.i("connect to home","completed");
    } catch (IOException e) {
        Log.i("connect to home","failed");
    }

実行するたびに、ログに「失敗」メッセージが表示されます。コードのそのセクションを削除すると、アプリが正常に実行されるため、エラーが発生しているはずです。「ホーム」は、疑問に思われるかもしれませんが、私のコードの他の場所にあるドキュメントとして定義されています。Javaではこれは問題なく動作します。Android用に開発しているEclipseでは、そのステートメントをtry-catchブロックで囲む必要がありましたが、Javaではtry-catchは必要ありませんでした。これが機能しない理由はありますか?より多くの情報、または私のコードが必要な場合は、それを提供します(ただし、完全なストーリーを提供しようとしました)。

助けてくれてありがとう

4

1 に答える 1

1

実行するたびに、ログに「失敗」メッセージが表示されます。

例外をログに記録しますe。失敗した方法/理由/場所に関する情報が含まれています。非常に正当な理由がない限り、例外を抑制してはなりません(つまり、自分が何をしているのかを正確に知っています)。

また、Android用に開発しているEclipseで、そのステートメントをtry-catchブロックで囲む必要があったのに、Javaではtry-catchが必要なかったのも不思議です。

おそらくあなたはすでにthrows IOExceptionそのような方法を持っていたでしょう:

public void foo() throws IOException {
    Document document = Jsoup.connect(url).get();
    // ...
}

そうすれば、実際にそれをトライキャッチに入れる必要はありません。

参照:

于 2010-12-08T04:28:55.263 に答える