gpt4 book ai didi

haxe - Haxe 中 try、catch、finally 的替代方案

转载 作者:行者123 更新时间:2023-12-03 05:21:23 24 4
gpt4 key购买 nike

在 AS3 中,我可以尝试/捕获/最后一个 JSON 文件,如下所示:

try{
myJSON = JSON.parse(_fileReference.data.toString());
}
catch (e:TypeError){ //String?
_se.log.trace(e); //Never got called
}
finally{
if (null == myJSON){
_se.log.trace("SyntaxError: Error #1132: Invalid JSON parse input.");
return;
}
}

有没有办法在Haxe中重现Finally阶段? 最后对我来说非常重要,我喜欢它在这个给定场景中的工作方式,它阻止了应用程序崩溃或暂停并弹出错误窗口。

最好寻找适用于 AS3 和 Haxe 的原始解决方案。

最佳答案

有一个 scopes haxelib,我相信它提供了与 try/catch/finally 类似的功能,具有范围保护和 protected block 。请参阅:https://bitbucket.org/parensoft/scopes

来自自述文件中的原始 protected /清理表达式示例:

import scopes.Protect;

Protect.protect(PROT, CLEAN);

CLEAN will always be executed when PROT exits. This includes normal completion or an abrupt exit with an exception, or a return, break or continue statement.

Any abrupt exit from the CLEAN expression will shadow the previous abrupt exit from the PROT expression, if any.

The value of the Protect.protect(PROT, CLEAN) expression is the value of the PROT expression if it completes; otherwise it's unspecified (and unreachable as well).

实际上之前已经讨论过为 Haxe 添加 finally 关键字:https://github.com/HaxeFoundation/haxe/issues/3335 - 但看起来有待进一步讨论。

关于haxe - Haxe 中 try、catch、finally 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49872778/

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