У меня есть следующий код в моем андроида приложения:код не печатает трассировку стека
/**
* 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
}
}
Я пытаюсь отладить. Theres исключение на линии cust.isDeceased = (cursor.getInt(23) > 0);
(почему Я получаю исключение - это еще один вопрос). Когда код достигает этой строки, он переходит к разделу catch
. Я поставил точку останова на строке ex.printStackTrace();
, но код полностью пропускает эту строку. Он просто прыгает прямо на линию return null;
, а трассировка стека равна никогда печатается. Из-за этого очень сложно отлаживать код, поскольку мне нужно угадать, что не так. (Если вы видите что-то не так с этим кодом, тогда, пожалуйста, скажите мне, но это не цель этого вопроса).
Прошу прощения за отсутствие информации/кода, который я представил, но поскольку я буквально понятия не имею, почему это происходит, я не знаю, что актуально, а что нет. Кто-нибудь сталкивался с этой проблемой раньше?
В этом разделе кода ничего не печатается на логарифме :( –
«код пропускает эту строку вообще», если он действительно пропущен, ваш код IDE и ваш текущий код не синхронизированы – rocketboy
Log.e («TAG», «error», ex), попробуйте это вместо printStackTrace(); – VM4