2012-03-15 7 views
0

Следующая строка кода вызывает у меня исключение,Отладка - следующий шаг?

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: 

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

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

Correctly using stacktrace to debug

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

Little screenshot to show what I mean... http://i41.tinypic.com/10dejao.jpg

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

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

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

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

ответ

2

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

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

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

+0

Спасибо за ответ, я сам наклонился к нему, но не хотел прыгать на него. – Amicable

+0

@Amicable Нет проблем. Я был бы удивлен, если бы вы получили солидный ответ на этот вопрос. NullReferenceException - проклятие почти каждого существования разработчиков *, особенно *, когда это не в их коде: -P –