0 голосов
спросил от в категории VBASPNETVBNET
Мы не можем запускать ваш код, потому что он зависит от внешних файлов, которых у нас нет.
Таким образом, мы можем только дать вам подсказки о том, что делать. < br> Структура Try/Catch не позволяет увидеть, где находится ошибка.
Поместите Try/Catch в примечании и прогоните свой код.
Он выкинет ошибку и предложит отладчик.
Когда в отладчике обратите внимание, где ошибка, просмотрите локальные переменные, Оскорбительная переменная не содержит ожидаемого.

Пожалуйста, войдите или зарегистрируйтесь чтобы ответить на этот вопрос.

0 голосов
ответил от
Вы не указали, где выбрано исключение с сообщением «Ссылка на объект, не установленное на экземпляр объекта».

беспокоиться. Это один из самых простых случаев для обнаружения и исправления. Это просто означает, что некоторый член/переменная некоторого ссылочного типа разыменовывается с помощью и его экземпляров (нестатических) членов, для которых этот член/переменная не имеет значения null, но на самом деле он кажется нулевым. Просто выполните его в отладчике, он остановит выполнение, в котором вызывается исключение. Поместите точку останова на эту строку, перезапустите приложение и снова перейдите к этой точке. Оцените все ссылки, участвующие в следующей строке, и посмотрите, какая из них является нулевой, в то время как она должна быть не нулевой. После того, как вы это выясните, исправьте код: либо убедитесь, что элемент/переменная правильно инициализирован для ненулевой ссылки, либо проверьте его на значение null, а в случае null сделайте что-то еще.

См. также: #want to display next record on button click. but got an error in if condition of next record function "object reference not set to an instance of an object" #.

Иногда вы не можете сделать это в отладчике по той или иной причине. Один действительно неприятный случай, когда проблема проявляется только в том случае, если программное обеспечение создано, когда отладочная информация недоступна. В этом случае вам придется использовать более жесткий путь. Во-первых, вам нужно убедиться, что вы никогда не блокируете распространение исключений, обрабатывая их молча (это преступление разработчиков против самих себя, но очень обычное). Вам нужно полностью исключить все исключения в самой верхней кадре стека для каждого потока. Вы можете сделать это, если обрабатываете исключения типа System.Exception . В обработчике вам необходимо записать всю информацию об исключениях, особенно System.Exception.StackTrace :
#http://msdn.microsoft.com/en-us/library/system.exception.aspx #,
2 ####.

Трассировка стека - это всего лишь строка, показывающая полный путь распространения исключений из инструкции throw для обработчика. Читая его, вы всегда можете найти концы. Для ведения журнала лучше всего (в большинстве случаев) использовать класс System.Diagnostics.EventLog :
#http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog.aspx #.

Удачи,
? SA

Категории

Добро пожаловать на сайт DraftingCode Q&A, где вы можете задавать вопросы и получать ответы от других членов сообщества.

Связанных вопросов не найдено

...