VB.net null引用异常:对象引用未设置为对象的实例

时间:2013-12-11 22:46:12

标签: vb.net xpath nullreferenceexception

我正在开发一个在用户之间共享播放列表的项目,我正在使用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的课程。

1 个答案:

答案 0 :(得分:0)

我的猜测是rootn为空。

通过在以下行放置一个断点来验证这一点:

Dim number As Double

当点击该断点时,将鼠标悬停在root上并查看是否为空。

如果是,则getDocument()中存在空值。

如果没有,那么请走过这一行:

number = n.Count

现在,将鼠标悬停在n上,如果它为空,则为

如果为null,则该行:

n = root.SelectNodes("//playlist")

有一个空引用问题。


  

注意:无论上述原因如何,学习如何调试程序是查找NullReferenceException和其他任何异常的关键。