gpt4 book ai didi

Java 异常与 C++ 异常

转载 作者:可可西里 更新时间:2023-11-01 16:30:43 27 4
gpt4 key购买 nike

异常存储在哪里?堆栈,堆。如何为异常分配和释放内存?现在,如果您有多个需要处理的异常,是否已创建所有这些异常的对象?

最佳答案

我假设异常内存的分配方式与所有其他对象(在堆上)的分配方式相同。

这曾经是个问题,因为那时你不能为 OutOfMemoryError 分配内存,这就是为什么有 no stack trace until Java 1.6 .现在他们也为堆栈跟踪预分配空间。

如果您想知道异常被抛出时对异常的引用存储在哪里,JVM 会在内部保留引用,同时展开调用堆栈以找到异常处理程序,异常处理程序随后会获取引用(在其堆栈帧上,就像任何其他局部变量一样)。

不能同时抛出两个异常(在同一个线程上)。它们可以嵌套,但是您只有一个“Activity ”异常引用了嵌套异常。

当对异常的所有引用都消失时(例如,在异常处理程序完成后),异常会像其他所有内容一样被垃圾回收。

关于Java 异常与 C++ 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/838460/

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