(Neko) "alc_cleanup: 1 device not closed" 而不是错误信息

(Neko) "alc_cleanup: 1 device not closed" instead of error message

我正在使用 Haxe 制作游戏并以 neko 为目标。任何未捕获的异常都会导致 alc_cleanup 错误。

问题是,这个错误阻止了异常详细信息的输出。

这很烦人,因为我使用断言,所以如果其中一个测试失败,我无法找出哪个抛出异常。

这里有什么帮助吗?

alc_cleanup 错误的发生只是因为正在使用的 OpenAl 音频设备(由您的游戏或底层框架)在终止程序之前没有关闭(由于未捕获的异常)。

如果可以,您可能希望自己捕获并记录该异常,以防止它被 alc_cleanup 错误破坏:

static function main()
{
    try {
       // do stuff
    } catch (e:Dynamic) {
        trace('ERROR: $e');
        trace(haxe.CallStack.toString(haxe.CallStack.exceptionStack()));
        Sys.exit(1);
    }
}

您还可以:

  • 尝试在您用来破坏 OpenAl 上下文的框架中找到合适的API
  • neko.Lib.rethrow 自己进行必要的清理后出现异常