16

いくつかのリクエストを処理した後、Eclipse が processWorkerExit() メソッドで壊れ始めました。

このリンクに従って、日食の中断を抑制する方法を知っていますが、この行でコードが中断する理由はありますか。このような場合にメモリリークが発生する可能性はありますか?

トムキャット 7.0.27
エクリプス 3.7.2
JDK 7.0.02

ここに画像の説明を入力

4

3 に答える 3

1

デバッガーがその行で停止する理由は、try{}ブロック内のコードによってスローされる例外があり、そのコードの特定の行が、例外がスローされた後の次の実行可能なコード行であるためです。コンソール ウィンドウでその例外のスタック トレースをほぼ確実に確認できThread.run()ますstderr

メモリ リークが発生する可能性があるかどうか (または、Java のリソース リークである可能性が高い) についての質問については、答えは「はい」です。発生する可能性があります。しかし、そのコードには、 があることを示すものは何もありませtaskこのようなリークがあった場合、ほぼ間違いなく、実装内で正しくない例外処理が行われていることが原因です。

于 2013-03-14T02:18:21.483 に答える
0

私はこれと同じ問題を抱えていました。例外をログに記録しない場合、try/catch 句がある場合は壊れます。次のように、ブレークポイントまたは出力を LogCat に挿入してみてください。

try
{
   //HERE I'VE PUT ALL THE FUNCTIONS THAT WORK FOR ME
   Log.e("tag", "Sth passed!");
}
catch (Exception e)
{
   //The task failed
   Log.e("tag", e.getMessage());           
}

try/catch ブロックがない場合は、上記のコードのように配置します。LogCat では、例外の前に実行されたコードの最後の行を確認できます。これは、次のようにコード内のエラーを見つけるのに役立ちます。

08-28 05:49:52.321: E/SQLiteDatabase(834): java.lang.Thread.run (Thread.java:841) で

于 2013-08-28T06:02:31.373 に答える