Отладка - следующий шаг? - PullRequest
0 голосов
/ 15 марта 2012

Следующая строка кода вызывает у меня исключение

using (new INVU.API.CallContextStore())
{
plug.Instance.AddDocuments(new Int32[] { val_pid }, val_ptype, val_doccat, val_subcat, val_doctype, val_notes, val_summary, SummaryAppendOptions.None, val_docStatus, new String[] { PDFFile });
}

И это деталь исключения.

System.Exception was caught
 Message=Object reference not set to an instance of an object. - Error when trying to save    document
 Source=SimsBridge

 StackTrace:
   at SimsBridge.Bridge.AddDocuments(Int32[] personIds, Int32 PersonType, String docCatagory, Int32 subCatagory, String docType, String notes, String summary, SummaryAppendOptions summaryOptions, String documentStatusCode, String[] filePaths)
   at ManagedScanDesktop.Form1.SimsScanComplete(String[] files) in C:\Working\ManagedScanDesktop 1.8\v1.8\ManagedScanDesktop\ManagedScanDesktop\Form1.cs:line 2619
InnerException: 

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

Ранее я получил несколько ответов на вопрос об использовании отладочной информации, который, казалось, подтвердил мою первоначальную мысль об Исключении.

Правильное использование stacktrace для отладки

Сначала я предположил, что объект SimsBridge не инициализируется, но с тех пор я нашел, где в коде это происходит (принимает пользователя/ передать как параметры).На данный момент я успешно вошел в систему, и данные с сервера возвращаются и отображаются в моей форме.

Небольшой скриншот, чтобы показать, что я имею в виду ... http://i41.tinypic.com/10dejao.jpg

(Ни один изпараметры также равны нулю)

Другая моя подозрение была ошибка сети, так как я видел, как установщик exe-пакета упакован с этой программой.Так что должно работать.Однако тот факт, что я могу войти, противоречит этому ...

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

В: Каким будет ваш следующий шаг в попытке отследить причину этой проблемы?

1 Ответ

2 голосов
/ 15 марта 2012

Если ни один из параметров не равен нулю (все эти val_ вещи) и ни plug, ни .Instance не равны нулю, то ошибка может лежать внутри метода AddDocuments. Если вы не контролируете этот код (например, это третье лицо), то все, что вы можете сделать, это убедиться, что вы используете код правильно. В противном случае вы застряли, задав вопрос авторам библиотеки.

Все, что вы знаете, что-то где-то ноль. Ничто из вашего материала не является нулевым (кроме потенциально DatabaseName), поэтому оставляет только внутреннее состояние вызываемого вами метода.

Для меня следующим шагом будет создание небольшого приложения, которое ничего не делает, кроме того, что вы пытаетесь сделать (в данном случае AddDocuments), чтобы посмотреть, сможете ли вы заставить его работать, или повторить проблему снова. Если вы можете заставить его работать, то это случай, когда код просматривает исходный материал, чтобы увидеть, не допустили ли вы где-нибудь небольшую логическую ошибку. Если вы можете повторить это, опубликуйте это для авторов кода в виде вопроса и посмотрите, что они скажут.

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