我正在开发一个在用户之间共享播放列表的项目,我正在使用XML文档“playlist.xml”。
以下是给我空引用异常的代码
<WebMethod()> _
Public Function getList(ByVal listNick As String) As String
Dim root As XmlNode = getDocument()
Dim number As Double
Dim n As XmlNodeList
n = root.SelectNodes("//playlist")
number = n.Count
Dim found As Boolean = False
'For Each node As XmlNode In n
Dim the_list As String = root.SelectSingleNode("playlists/playlist[@name='" + listNick + "']").InnerXml
Return the_list
'n = root.SelectSingleNode(“WebShop/Departments/Department[@name=’Hardware’])
'Next
If (Not found) Then
'Return "Not found among: " + number.ToString + "\n" + "did find: " + n.Item(1).Value ---to test for errors
Return "0"
Else
Return "[getList] if you read this, jamie has failed his logic somewhere."
End If
End Function
这是堆栈跟踪:
System.NullReferenceException:未将对象引用设置为对象的实例。 在C:\ Users \ jamie \ Dropbox \ UNIVERSITY \ WebSite \ App_Code \ Service.vb中的Service.getList(String listNick):我发布的代码中的第36行 - 第11行
这是uni的课程。
答案 0 :(得分:0)
我的猜测是root
或n
为空。
通过在以下行放置一个断点来验证这一点:
Dim number As Double
当点击该断点时,将鼠标悬停在root
上并查看是否为空。
如果是,则getDocument()
中存在空值。
如果没有,那么请走过这一行:
number = n.Count
现在,将鼠标悬停在n
上,如果它为空,则为
如果为null,则该行:
n = root.SelectNodes("//playlist")
有一个空引用问题。
注意:无论上述原因如何,学习如何调试程序是查找
NullReferenceException
和其他任何异常的关键。