gpt4 book ai didi

exception - vb.net 中的 StackOverFlow 异常是什么?

转载 作者:行者123 更新时间:2023-12-02 23:37:45 25 4
gpt4 key购买 nike

我什至不知道是什么导致了我的应用程序。它是什么?我创建了一个类的新实例(该类位于另一个文件中),但在我第一次调用方法时,它抛出了 StackOverFlow 异常。

我认为从逻辑上讲,唯一会引发 stackoverflow 异常的事情就是有人对 Jon Skeet 投了反对票。

但是现在说真的,这是什么?我通过在与第一个类相同的文件中创建另一个类并使用它来为我调用方法来解决这个问题。

最佳答案

作为一般规则,堆栈溢出异常是由递归算法引起的,其中递归深度超出(通常)固定堆栈限制。这通常是算法中的错误导致的,但也可能是由于您应用算法的数据结构太“深”造成的。

这是一个有问题的递归的简单示例(没有特定的 PL)。

function int length(list l) {
if (empty(l)) {
return 0;
} else {
return 1 + length(l); // should be 'return 1 + length(tail(l));
}
}

在典型的编程语言中,任何非空列表的调用长度都会导致堆栈溢出。但即使你纠正了这个错误,调用长列表的方法也可能会导致堆栈溢出。

(异常(exception)情况是当您使用支持尾递归优化的语言......或更严格地说是编译器......)。

关于exception - vb.net 中的 StackOverFlow 异常是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1450192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com