在javascript中,是否有内置错误代码?是否有可能陷入内部错误?有可能继续吗?

时间:2011-06-10 10:28:33

标签: javascript error-handling

好吧,我觉得这个问题很愚蠢,原谅我糟糕的研究技术,但是......

使用示例

  if( obj.attr1.attr2.attr3 == 'constant' ) return;
  else if( condition2 ) ...

如果obj.attr1未定义,则javascript引擎会抛出错误。

  1. 抛出的错误是什么?是普遍定义的吗?

  2. 是否可以全局捕获错误?

  3. 如果被困,是否可以执行下一行condition2

  4. 澄清:因为尝试获取未定义的属性而引发错误。有没有办法知道这个是被引发的错误?它是在一些标准的JavaScript错误消息表中吗?

    第二,将错误困在上游,程序是否可以不间断地流动?

2 个答案:

答案 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语句,但是使用结构化异常处理来指导正常的程序流是不受欢迎的,应该避免使用。