2016-10-03 38 views
0

這段代碼有什麼問題?asp.net vb.net可以任何一個解釋出了什麼問題?

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim i As Integer = 0 
    Do 
     Response.Write("hello") 
    Loop While i < 5 
End Sub 

我有錯誤

System.OutOfMemoryException was unhandled 
Insufficient memory to continue the execution of the program. 

任何人都可以解釋爲什麼我有錯誤?

+3

你永遠不會增加我。所以你的循環永遠持續 –

+0

@DavidCram這也是我的第一個想法,但我無法弄清楚爲什麼會導致'OutOfMemoryException'。我想知道是否緩衝了Response.Write輸出,並且他最終將爲該緩衝區提供任何可用的內存。 –

+0

@DavidCram thanx它是解決我的問題 –

回答

2

這是你的代碼的固定版本:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim i As Integer = 0 
    Do 
     Response.Write("hello") 
     i = i + 1 
    Loop While i < 5 
End Sub 
1

所以你的問題是「爲什麼內存不足」。因爲.NET Framework只能訪問這麼多的內存。從本質上說,你的循環說「不斷燒燬內存,直到電腦崩潰或耶穌回來」。由於沒有發生Armageddon,並且Framework可以防止計算機崩潰,所以您的預期結果將會失敗,而當您使用沒有終止子句的循環或增量來刻錄內存時,會導致內存不足錯誤,從而永遠無法循環(或者直到框架阻止您崩潰計算機)。 ;-)

+0

哇謝謝錯誤的解釋:) –

相關問題