Это можно сделать с помощью осторожного шага в отладчике Eclipse. Поместите точку останова на строку, которую вы описываете. Если в байтовом коде имеются локальные переменные, вы сразу же узнаете, что первый вызов вызывает проблемы, если посмотреть на значение objectName
. Если он равен нулю, вы знаете, что это первый вызов.
Если нет, перейдите к методу (F5). Это приведет вас к реализации первого метода. Затем вы можете сразу вернуться из него, выйдя (шаг возврата - F7). Вы должны вернуться к линии orignal с отладчиком, готовым перейти к следующему методу. Вы продолжаете снова вступать (F5). Это должно привести вас к реализации следующего метода. Если вы прибыли туда, то все еще нет исключения. Шаг возврата (F7) снова.
Продолжайте, пока не дойдете до какого-либо обработчика исключений, а не из метода, на который вы хотели бы войти. Это тот, который вам нужен, или, возможно, тот, который был перед ним, потому что тот ответил null.
Вы также можете играть с функцией «Выполнить линию» (по умолчанию Ctrl + R), чтобы сделать это немного легче.
Вы вызываете метод2() на то, что возвращается методом1(), то же самое для метода3(). Если они не очень хорошо протестированы и не будут использовать классы, подобные самому idk, я бы посоветовал в ответе. У вас есть 3 разных объекта и 3 разных метода. Ошибка трассировки стека – efekctive
. Каждый из '.' И '[' являются потенциальными причинами исключений с нулевым указателем. Чтобы избежать ситуации, у вас есть, не более одного из них на одной строке. –
Я не могу представить, что чтение трассировки стека было бы ужасно трудным. – ChiefTwoPencils