我多年来一直在 ActionScript 上进行开发,我很欣赏它的演变,因为它越来越成为一种通用的开发“语言”。我在 ActionScript 和 JavaScript 上注意到的一件事是人们可以称之为“无声错误”的东西。希望我能找到词语来解释这一点: 有时您编写一些代码行,从编译器(我使用的是 adobe Flex Builder)编译文本而不发出警告(没有错误...),但是当要查看结果(在运行时)时,在浏览器上结果与您的预期不同...原因:在某些时候,出于某种原因,actionscript 选择忽略某些代码行,甚至没有警告!我尝试使用“try/catch”块,但结果仍然相同......
检查编译器开始忽略代码的唯一方法是对“flex”使用“Alert.show()”,对“javascript”使用“alert()”。我的意思是,当没有进一步的情况时更多“aler()”我知道代码被忽略了......通常,我尝试选择更“健壮”的表达式来避免这种行为,结果是预期的......一般来说,当某行代码是忽略,以下所有行都被忽略...
这可能是编译器无法处理运行时的未定义对象调用的问题,但如果是这样,就必须有人检查编译器......我在编译器选项中添加了“-strict=true”,但什么也没有改变了...我在 javascript 上经历了这种行为,所以我想这是一个更普遍的事情...有人可以解释这种行为吗?
错误发生在运行时,因此编译器无法警告您,您需要做的是获取错误的堆栈跟踪并修复它,要获得详细的堆栈跟踪,您必须在调试模式下运行。 另请阅读如何捕获 Flex 中的所有异常? 您可以在那里捕获未捕获的错误,并可能将它们写入用户可以发送给您的日志中。 修复方法是使用 try/catch/finaly 或修复问题(如果实例为 null)