Visual Studio-VB.Net-引发堆栈错误
我正在努力学习更多关于编程语言的知识。 我正在使用以下使用递归的代码。 我使它运行,直到抛出堆栈异常。 无需追踪错误和/或防御性编码以防止 这么深的递归:-我能做些调整吗 运行此例程时释放任何堆栈空间 模块1 私有变量为整数=1Visual Studio-VB.Net-引发堆栈错误,vb.net,Vb.net,我正在努力学习更多关于编程语言的知识。 我正在使用以下使用递归的代码。 我使它运行,直到抛出堆栈异常。 无需追踪错误和/或防御性编码以防止 这么深的递归:-我能做些调整吗 运行此例程时释放任何堆栈空间 模块1 私有变量为整数=1 Sub Main() Take1(var) End Sub Public Function Take1(p1 As Integer) As Integer p1 = p1 + 1 Console.Write(p1 & vbCrLf)
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
结束模块您的代码将导致无限递归。请参阅此处描述此内容的链接:
该链接表示,从.NET 2.0开始,您无法使用try-catch块捕获此类异常,并给出了不捕获的充分理由。Um,不-您有一对相互递归的函数,没有停止点。如果不将其适当地停止,您将如何期望它被回收?(我不确定我会称之为“防御性编码”——它更像是“指定终止点”。)您希望代码继续递归到什么程度?