为什么可以从StackOverflowError中恢复?

为什么可以从StackOverflowError中恢复?,第1张

为什么可以从StackOverflowError中恢复?

堆栈溢出并被

StackOverflowError
抛出时,通常的异常处理将展开堆栈。展开堆栈意味着:

  • 中止当前活动功能的执行
  • 删除其堆栈帧,继续执行调用函数
  • 中止调用者的执行
  • 删除其堆栈帧,继续执行调用函数
  • 等等…

…直到发现异常。这是正常的(实际上是必要的),并且与引发哪个异常以及原因无关。由于您是在第一次调用之外捕获到异常的

foo()
,因此
foo
已清除了填充堆栈的数千个堆栈帧,并且大部分堆栈可以自由使用。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5615534.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存