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

时间:2012-07-17 13:42:41

标签: actionscript-3 flex flex4 flex3

我们可以在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

1 个答案:

答案 0 :(得分:0)

发生这种情况的原因是大括号表达式:text="{v.label}。 (除了“大括号”或绑定表达之外,我永远不知道该怎么称呼 - 有人请用正确的术语编辑/纠正我。)

Flex数据绑定功能通过设计“吞噬”这些错误。可以想象,v.label之类的值可以为null,例如,当应用程序启动时。为方便起见,Flex为我们解决了这些错误。但是当我们编写自己的Actionscript时,我们没有同样的奢侈。

然而,这并不神奇。管理数据绑定/大括号表达式的Flex代码要么检查空值,要么包含在try/catch语句中以处理可能由空对象引起的任何错误。