Visual Studio - VB.Net - 抛出堆栈错误

时间:2013-02-03 20:43:33

标签: vb.net

我正在努力学习有关编程语言的更多信息。 我使用Recursion使用以下代码。 我让它一直运行,直到抛出一个堆栈异常。 没有陷阱错误和/或防御性编码以防止 如此深刻的递归: - 我可以做出调整吗? 在这个例程运行时释放任何堆栈空间?

模块Module1     Private var As Integer = 1

Sub Main()
    Take1(var)
End Sub

Public Function Take1(p1 As Integer) As Integer
    p1 = p1 + 1
    Console.Write(p1 & vbCrLf)
    Take1 = Nothing
    Call Take2(p1)
End Function

Public Function Take2(p1 As Integer) As Integer
    p1 = p1 + 1
    Console.Write(p1 & vbCrLf)
    Take2 = Nothing
    Call Take1(p1)
End Function

结束模块

1 个答案:

答案 0 :(得分:0)

您的代码导致无限递归。请参阅此处描述的链接:http://msdn.microsoft.com/en-us/library/system.stackoverflowexception.aspx

链接是说从.NET 2.0开始你不能用try-catch块捕获这种类型的异常,并给出了很好的理由。