正确使用stacktrace进行调试

本文关键字:调试 stacktrace | 更新日期: 2023-09-27 18:27:43

以下代码行导致异常

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是否指向该方法的哪个部分没有引用集?还是stacktrace只是为了跟踪方法的调用位置?

正确使用stacktrace进行调试

当抛出异常时,堆栈跟踪会显示调用堆栈。根据您提供的内容,您只能推断出从AddDocuments引发了异常。传入的任何引用类型参数都可能为null。找出问题的最佳方法是设置断点,然后检查值。

堆栈跟踪意味着SimsBridge或SimsBridge.Bridge为null。

消息告诉您,在AddDocuments中的某个位置引发了null引用异常。它可以是其中一个参数或一个成员。