Почему эта локальная переменная недоступна?

Недавно я наткнулся на это во время сеанса отладки в IntelliJ IDEA (CommunityEdition build # IC182.3684.101). Почему эта локальная переменная недоступна?

Таким образом, даже когда отладчик находится внутри блока catch, он не имеет доступа к локальной переменной, и поэтому с ними нельзя выполнить никакую операцию (заглянуть, оценить). Иногда это раздражает, потому что нам придется позволить ему генерировать исключение и останавливать для него текущее выполнение.

Разве эти локальные переменные не должны быть доступны до завершения выполнения блока? или это только в IntelliJ IDEA?

Пожалуйста, опубликуйте код и разметку и такие как текст, а не как рисунок текста. Почему: meta.stackoverflow.com/q/285551/157247 (Вы можете также включить изображение, если оно помогает показать проблему в контексте.)

T.J. Crowder 23.01.2019 15:04

Должен быть доступ. Вы уверены, что на самом деле находитесь внутри блока захвата, а не на линии захвата?

Steve Smith 23.01.2019 15:05

Если @SteveSmith не прав, я предполагаю, что вы создали проект без отключения оптимизации, а переменная была оптимизирована.

T.J. Crowder 23.01.2019 15:05

Я включил скриншот, потому что это был не один экземпляр, а несколько его экземпляров.

KumarAnkit 23.01.2019 15:06

Или, возможно, код, работающий в отладчике, не синхронизирован с редактором по какой-то другой причине. У меня нет большого опыта работы с IDEA, но в eclipse я бы попробовал "обновить" проект.

Hulk 23.01.2019 15:07

@SteveSmith, да, на скриншоте видно, что синяя линия выделяет строку, которая выполняется в данный момент, и она находится в блоке catch.

KumarAnkit 23.01.2019 15:07

Используйте Эклипс. ;) Или это поможет: intellij-support.jetbrains.com/hc/en-us/community/posts/…

Steve Smith 23.01.2019 15:13

@ Стив, нет, я думаю, это специально для блокировки блокировки, афаик

KumarAnkit 23.01.2019 15:20

Я не думаю, что включил отладку с включенной оптимизацией @T.J.Crowder.

KumarAnkit 23.01.2019 15:26

Какие локальные переменные доступны в этот момент? Отладчик может ошибаться в именах переменных в декомпилированном коде.

Egor 23.01.2019 15:30

Я согласен с @Hulk - в большинстве случаев у меня были странности отладчика IntelliJ, это было связано с тем, что проект устарел с кодом - возможно, были ошибки сборки, может быть, у вас есть другая работающая копия кода (в среде IDE), которая препятствует восстановлению и т. д.

dan.m was user2321368 23.01.2019 15:56

@dan.m, как я уже упоминал, это случалось несколько раз, а не только один раз, когда мы могли допустить ошибку, рассинхронизировав код.

KumarAnkit 23.01.2019 16:36

@KumarAnkit - "Я включил скриншот, потому что это не единичный случай..." Не имеет значения. Включите текст примера, который вы предоставили, в виде снимка экрана.

T.J. Crowder 23.01.2019 17:46
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
13
123
0

Другие вопросы по теме