当在MXML中访问NULL对象属性时,为什么没有抛出脚本错误



我们可以在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对象可能导致的任何错误。

最新更新