0

Android アプリケーションに次のコードがあります。

/**
         * Returns a single customer object based on UUID. */
        public static Customer getCustomer(UUID id)
        {
            try
            {
                Cursor cursor = CustomApp.data.db.query("Customer", customerCols,
                        "CustomerId='" + id.toString() + "'", null, null, null, null);
                if (cursor != null)
                    cursor.moveToFirst();
                Customer cust = new Customer(id);

                // Unrelated code here

                if (!cursor.isNull(23))
                    cust.isDeceased = (cursor.getInt(23) > 0); // EXCEPTION

                // More unrelated code here

                return cust;
            }
            catch (Exception ex)
            {
                ex.printStackTrace(); // This line gets skipped
                return null; // Code jumps to here
            }
        }

私はそれをデバッグしようとしています。行に例外がありますcust.isDeceased = (cursor.getInt(23) > 0);なぜ例外が発生するのかは、まったく別の質問です)。コードがその行に到達すると、そのcatchセクションにジャンプします。行にブレークポイントを設定しましたex.printStackTrace();が、コードはこの行を完全にスキップします。行に直接ジャンプするだけreturn null;で、スタック トレースは出力されません。このため、コードのデバッグが非常に難しくなっています。なぜなら、何が間違っているのかを推測しなければならないからです。(そのコードに何か問題がある場合は、教えてください。ただし、それはこの質問の目的ではありません)。

提示した情報/コードが不足していて申し訳ありませんが、なぜこれが起こるのか文字通りわからないため、何が関連していて何が関連していないのかわかりません。以前にこの問題に遭遇した人はいますか?

4

2 に答える 2

1

Log.e("タグ", "エラー", ex); ex.printStackTrace(); の代わりにこれを試してください。また、Eclipseを再起動してみてください。

于 2013-08-05T11:25:28.910 に答える
0

try catch 句を削除すると、logcat に詳細な例外が表示されます。

于 2013-08-05T11:24:06.740 に答える