列表中的StackOverflow(Of T)

时间:2010-08-30 13:41:46

标签: vb.net list stack-overflow lucene.net

我有一个在ASP.NET(VB.NET)中使用Lucene.net的程序,当你搜索一个术语时,结果存储在Lucene.net数据结构中“命中”。

我希望将匹配读出到数据结构中并使用它们,之后我将它们显示在DataGrid中。

通过搜索包含大量结果的术语,通常(但并非总是)通过以下代码存在错误:

For i = 0 To results - 1 Step 1
    Try
        Dim tmpobj As New object_hit(( _
            hits.Doc(i).Get("title") + _
            hits.Doc(i).Get("doc_typ")), _
            hits.Doc(i).Get("pfad"), _
            hits.Doc(i).Get("last_change"), _
            hits.Doc(i).Get("doc_typ"), _
            CStr(hits.Score(i)))    
        list_of_results.Add(tmpobj) 'works'
    Catch
        meldung.Text = "Stackoverflow- zuviele Ergebnisse "
        myexception = True
    End Try

我查了一下服务器;它是一个dwh服务器,执行程序没有问题。

起初我使用的是ReDim Array,但现在我使用了List(Of T)。我听说应该解决问题,但事实并非如此 - 现在我很困惑,不知道该做什么 - 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

更改Catch块,以便您实际可以看到此处发生的事情:

Catch ex as Exception
    meldung.Text = ex.Message ' or ex.ToString() to see full details '
    throw
End Try

你可能在这里没有得到StackOverflowException

答案 1 :(得分:0)

我的浏览器崩溃了,所以我必须以访客身份写作:<遗憾。

我试过了:

抛出了类型'System.OutOfMemoryException'的异常。

现在我有一个正确的for循环,其中只有一行代码

list_of_results.Add(New object_hit((hits.Doc(i).Get("title") + hits.Doc(i).Get("doc_typ")), hits.Doc(i).Get("pfad"), hits.Doc(i).Get("last_change"), hits.Doc(i).Get("doc_typ"), CStr(hits.Score(i)))) 
发生了什么事? (服务器是一个dwh服务器,它应该成功...)

感谢