AS3 -TypeError#1009 - 任何简单的方法,找出其中* *对象的引用是空?(AS3

2019-07-20 20:27发布

我们都得到“类型错误#1009无法访问空对象引用的属性或方法”现在,然后 - 没什么大不了的,但有时难以调试。

闪存让你调用堆栈(这是一个开始),但保留这些给你找出其中的空对象是-是否有可能找出究竟该参考引发错误?

鉴于以下(容易出错)功能:

function nullObjectReferenceError():void
    {
        var obj:Object;
        var prop:* = obj.nonExistentProperty;
    }

而不是仅仅从类型错误调用堆栈,我想追查是这样的:“ 不能在obj.nonExistentProperty访问空对象引用的属性或方法 ” -这甚至可能吗?

Answer 1:

如果选中允许调试下发布设置在Flash IDE,它可以让你在你的代码导致错误的行号。



Answer 2:

显而易见的解决方案是停止在第一位置使用这种通用的易出错代码。 你永远不应该使用“*”型,几乎不应该使用“对象”型。

为了赶上它在运行时,你总是可以说:

if(obj == null)
  throw new Error("null obj passed in!!");

if(obj.nonExistentProperty == null)
  throw new Error("obj doesn't have the prop!! the obj was: "+obj);


Answer 3:

TypeError ,如果你抓住它不会给你任何信息。

据我所知,目前还没有已知的方法来实现这一目标(即目标投掷了错误)。

你最好的选择将是设置在函数的开始一个断点,并手动调查的变量。 这就是我做的,而且工作很适合我。



文章来源: AS3 -TypeError #1009 - any easy way to find out *which* object reference is null?