Правильно использовать stacktrace для отладки - PullRequest
4 голосов
/ 14 марта 2012

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

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 просто проследить, где вызывается метод?

Ответы [ 3 ]

4 голосов
/ 14 марта 2012

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

1 голос
/ 14 марта 2012

В сообщении говорится, что где-то в AddDocuments было сгенерировано исключение нулевой ссылки.Это может быть один из параметров или член.

1 голос
/ 14 марта 2012

Ваша трассировка стека означает, что SimsBridge или SimsBridge.Bridge имеет значение null.

...