Аналогичный вопрос задавали здесь два раза и никогда не было ответа. Или ответ был: «Это невозможно!» Извините, возможно слишком много:Оказалось, что Throwable или Exception является нулевым
try{
...
// the line that causes the error
LinearLayout cell = (LinearLayout) inflater.inflate(R.layout.channels_list_cell, column);
...
}
catch(Throwable e){
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show(); < breakpoint here!
}
В точке останова e равно null. Как я могу найти ошибку, пожалуйста? Возможно, это не проблема Java или Android, а отладчика Eclipse, который сам по себе требует отладки. Но что мне делать, кроме изменения в другую среду IDE? Есть идеи? Заранее благодарен.
Я пробовал Throwable, Exception, RuntimeException. Результат тот же.
Попытка перешагнуть через точку останова вызывает NullPointerException, поэтому e кажется действительно нулевым в тот момент. Где он может быть потерян?
Редактировать: Я приношу свою благодарность всем и +1 каждому ответчику. Это была ошибка Eclipse. После перезапуска Eclipse Exception больше не имеет значения null, это обычное RuntimeException: двоичная строка XML-файла # 15: вы должны указать атрибут layout_width. Это будет другая проблема, которая будет решена, но эта проблема решена.
Почему вы ловите Throwable вместо Exception? – Rich
Я пробовал Throwable, Exception, RuntimeException. Результат тот же. – Gangnus
Я никогда не использую отладчик самостоятельно, но из того, что я видел, когда другие люди его используют, то, что он показывает для данного объекта, похоже, является результатом вызова 'String.valueOf (...)' на этом объекте. Поэтому, если метод 'toString()' пойманного исключения исключает либо «null», либо «null», тогда отладчик может дать ложное впечатление, что исключенное исключение - «null». – ruakh