2

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

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

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

这里有什么帮助吗?

4

1 回答 1

2

错误的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自己进行必要的清理后的异常
于 2017-10-20T20:16:05.197 回答