簡體   English   中英

調試 - 下一步?

[英]Debugging - Next step?

以下代碼行導致我出現異常

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對象沒有被初始化,但我已經發現代碼中發生了這種情況(將user / pass作為參數)。 此時我已成功登錄,服務器的詳細信息將返回並顯示在我的表單上。

小截圖顯示我的意思......

(所有參數都不為空)

網絡錯誤是我的另一個懷疑,因為我已經看到這個程序打包的exe安裝程序工作。 所以它應該工作。 但是,我可以登錄的事實違背了這一點......

我感覺有點迷失在哪里看下一個,我真的可以問這里沒有人在這里工作。

問:嘗試追蹤此問題原因的下一步是什么?

如果沒有任何參數為null(所有這些val_事件)並且plug.Instance為null,則錯誤可能位於AddDocuments方法的內部。 如果您無法控制此代碼(例如,它是第三方),那么您所能做的就是確保正確使用代碼。 否則,您將無法向庫的作者發布問題。

你所知道的是,某處的某些東西是空的。 你的東西似乎都不是null(除了可能的DatabaseName ),所以只留下你正在調用的方法的內部狀態。

對我來說,下一步是創建一個小應用程序,除了你想要做的事情(在這種情況下是AddDocuments )之外什么都不做,看看你是否可以使它工作,或者再次復制問題。 如果你可以使它工作,那么就是代碼審查原始內容的情況,看看你是否在任何地方都發生了輕微的邏輯錯誤。 如果您可以復制它,請將其作為問題發布給代碼作者,看看他們說了什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM