
当堆栈溢出并被
StackOverflowError抛出时,通常的异常处理将展开堆栈。展开堆栈意味着:
- 中止当前活动功能的执行
- 删除其堆栈帧,继续执行调用函数
- 中止调用者的执行
- 删除其堆栈帧,继续执行调用函数
- 等等…
…直到发现异常。这是正常的(实际上是必要的),并且与引发哪个异常以及原因无关。由于您是在第一次调用之外捕获到异常的
foo(),因此
foo已清除了填充堆栈的数千个堆栈帧,并且大部分堆栈可以自由使用。
欢迎分享,转载请注明来源:内存溢出

当堆栈溢出并被
StackOverflowError抛出时,通常的异常处理将展开堆栈。展开堆栈意味着:
…直到发现异常。这是正常的(实际上是必要的),并且与引发哪个异常以及原因无关。由于您是在第一次调用之外捕获到异常的
foo(),因此
foo已清除了填充堆栈的数千个堆栈帧,并且大部分堆栈可以自由使用。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)