我们可以在MXML中添加内联代码。然而,当我们试图从MXML(内联代码)中的NULL对象获取属性时,flex不会抛出错误。然而,当我们在动作脚本标记中做同样的事情时,我们可以看到抛出的脚本错误。
如何在MXML中捕获此行为。任何想法。
例如:
Class ValueTo //Model class
{
public var name:string;
}
<fx:Script>
<![CDATA[
public var v:ValueTo;
]]>
</fx:Script>
<mx:Label **text="{v.lable}"** /> //No error thrown, when v=null, i.e null.label
发生这种情况的原因是大括号表达式text="{v.label}
。(除了"大括号"或绑定表达式之外,我永远不知道该怎么称呼它们——请有人用正确的术语编辑/更正我)。
Flex数据绑定功能通过设计"吞噬"了这些错误。可以想象,例如,当应用程序启动时,像v.label
这样的值可能为null。为了方便起见,Flex会帮我们处理这些错误。但当我们编写自己的Actionscript时,我们就没有那么奢侈了。
然而,这并不神奇。管理数据绑定/大括号表达式的Flex代码要么检查null,要么封装在try/catch
语句中,以处理null对象可能导致的任何错误。