Compiler construction &引用;无声的错误”;在动作脚本中

Compiler construction &引用;无声的错误”;在动作脚本中,compiler-construction,actionscript,scripting,Compiler Construction,Actionscript,Scripting,我多年来一直在开发actionscript,我很欣赏它的发展,因为它越来越成为一种通用的开发“语言”。在actionscript和javascript中,我注意到的一件事是人们可以称之为“无声错误”。我希望我能找到一些词语来解释: 有时,您编写一些代码行,从编译器(我使用的是adobe Flex Builder)编译文本而不发出警告(没有错误…),但当看到结果(在运行时),在浏览器上,结果与您预期的不同…原因:在某个点上,出于某种原因,actionscript选择忽略一些甚至没有警告的代码行!我

我多年来一直在开发actionscript,我很欣赏它的发展,因为它越来越成为一种通用的开发“语言”。在actionscript和javascript中,我注意到的一件事是人们可以称之为“无声错误”。我希望我能找到一些词语来解释: 有时,您编写一些代码行,从编译器(我使用的是adobe Flex Builder)编译文本而不发出警告(没有错误…),但当看到结果(在运行时),在浏览器上,结果与您预期的不同…原因:在某个点上,出于某种原因,actionscript选择忽略一些甚至没有警告的代码行!我尝试使用“try/catch”组,但结果仍然是一样的

检查编译器开始忽略代码点的唯一方法是使用“Alert.show()”表示“flex”,使用“Alert()”表示“javascript”。我的意思是,当没有更多的“aler()”时,我知道代码被忽略了……通常,我试着选择更“健壮”表达式来避免这种行为,并且结果是预期的…通常,当忽略某行代码时,将忽略以下所有行


这可能是一个未定义的对象调用的问题,编译器无法处理运行时,但如果是这样,则必须有人检查编译器是否存在此问题…我在编译器选项中添加了“-strict=true”,但没有任何更改…我在javascript上经历过此行为,所以我想这是一个更普遍的现象…有人能解释这种行为吗

错误发生在运行时,因此编译器无法警告您,您需要做的是获取错误的堆栈跟踪并修复它,获取必须在调试模式下运行的详细堆栈跟踪。 此外,你还可以在那里捕获未捕获的错误,并可能将它们写入用户可以发送给你的日志中。 修复方法是使用try/catch/finaly或修复问题(如果实例为null)