使用示例
if( obj.attr1.attr2.attr3 == 'constant' ) return; else if( condition2 ) ...
如果obj.attr1
未定义,则javascript引擎会抛出错误。
抛出的错误是什么?是普遍定义的吗?
是否可以全局捕获此错误?
如果被困,是否可以执行下一行condition2
?
澄清:因为尝试获取未定义的属性而引发错误。有没有办法知道这个是被引发的错误?它是在一些标准的JavaScript错误消息表中吗?
第二,将错误困在上游,程序是否可以不间断地流动?
答案 0 :(得分:2)
可以使用try / catch块捕获此错误:
try{
if( obj.attr1.attr2.attr3 == 'constant' ) {
alert("test");
}
}
catch(e)
{
alert(e.Message);
}
该例外为您提供以下内容:
description "'obj' is undefined" String
message "'obj' is undefined" String
name "TypeError" String
number -2146823279 Number
答案 1 :(得分:0)
通常情况下,这是由优雅地解决,而不是盲目地假设某些东西存在。
if( obj.attr1 && obj.attr1.attr2 && obj.attr1.attr2.attr3 == 'constant' )
除此之外,您可以编写一个捕获异常的try / catch语句,但是使用结构化异常处理来指导正常的程序流是不受欢迎的,应该避免使用。