2013-08-05 2 views
0

У меня есть следующий код в моем андроида приложения:код не печатает трассировку стека

/** 
     * 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;, а трассировка стека равна никогда печатается. Из-за этого очень сложно отлаживать код, поскольку мне нужно угадать, что не так. (Если вы видите что-то не так с этим кодом, тогда, пожалуйста, скажите мне, но это не цель этого вопроса).

Прошу прощения за отсутствие информации/кода, который я представил, но поскольку я буквально понятия не имею, почему это происходит, я не знаю, что актуально, а что нет. Кто-нибудь сталкивался с этой проблемой раньше?

+0

В этом разделе кода ничего не печатается на логарифме :( –

+0

«код пропускает эту строку вообще», если он действительно пропущен, ваш код IDE и ваш текущий код не синхронизированы – rocketboy

+0

Log.e («TAG», «error», ex), попробуйте это вместо printStackTrace(); – VM4

ответ

2

Log.e ("TAG", "error", ex); попробуйте это вместо ex.printStackTrace(); Также попробуйте перезапустить eclipse.

+0

Я попробую это, но я не думаю, что это изменит ситуацию, так как когда срабатывает try-catch, он переходит прямо к нулевому возврату. Единственная причина, по которой я k теперь это потому, что я поставил точки останова повсюду :(Я пробую это сейчас, спасибо :) –

+0

Нет, это не сработало - отладчик пропускает прямо, чтобы «вернуть нуль» в разделе 'catch'. Любые другие строки пропускаются вообще. –

+0

Вы уверены, что выбрали LogCat? – VM4

0

удалить предложение try catch, logcat покажет вам подробное исключение.

Смежные вопросы