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;
で、スタック トレースは出力されません。このため、コードのデバッグが非常に難しくなっています。なぜなら、何が間違っているのかを推測しなければならないからです。(そのコードに何か問題がある場合は、教えてください。ただし、それはこの質問の目的ではありません)。
提示した情報/コードが不足していて申し訳ありませんが、なぜこれが起こるのか文字通りわからないため、何が関連していて何が関連していないのかわかりません。以前にこの問題に遭遇した人はいますか?