gpt4 book ai didi

d - 从 D 中的析构函数调用模块级函数(似乎抛出 OutOfMemoryError)

转载 作者:行者123 更新时间:2023-12-04 03:31:15 25 4
gpt4 key购买 nike

我有一个全局 D 模块,其中包含一些辅助函数(即用于日志记录),它们处于模块级别而不是类中。但是,当从析构函数调用这些函数时,我得到一个 core.exception.OutOfMemoryError 和/或应用程序挂起和崩溃。我在这里做错了吗?

一个精简的测试用例:

记录器.d

module main.logger;
void log(const(char)[] msg) {
auto time = // GET TIME OF DAY SOMEHOW
std.stdio.writeln(std.conv.to!string(time) ~ " " ~ msg);
}

类.d
module main.class;
import main.logger;

class A {
public:
this() {}
~this() { log("Destructor"); }
}

最佳答案

垃圾收集器当前不支持从终结器中调用的抛出异常或内存分配。因此,您无法可靠地执行任何导致分配或从类析构函数内部引发未捕获异常的事情。

关于d - 从 D 中的析构函数调用模块级函数(似乎抛出 OutOfMemoryError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323393/

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