学科分类
目录
JavaScript网页编程

错误对象的传递

在发生错误时,错误出现的位置、错误的类型,错误信息等数据,都会以一个对象的形式传递给catch语句,通过catch(e)的方式来接收,其中e是错误对象的变量名。

错误对象会在函数之间传递。当try中的代码调用了其他函数时,如果在其他函数中出现了错误,且没有使用try…catch处理时,程序就会停下来,将错误传递到调用当前函数的上一层函数,如果上一层函数仍然没有处理,则继续向上传递。具体示例如下。

 1  function foo1() {

 2   foo2();

 3   console.log('foo1');

 4  }

 5  function foo2() {

 6   var o = {};

 7   o.func();  // 发生错误

 8  }

上述代码中,foo1()函数调用了foo2()函数,而foo2()函数的代码存在错误。此时如果调用foo1()函数,则foo2()中的错误对象会传递给foo1(),foo1()继续传递给外层的catch。示例代码如下。

 1  try {

 2   foo1();

 3  } catch(e) {

 4   console.log('test');

 5  }

上述代码执行后,控制台的输出结果中只有test,没有foo1,说明foo1()函数后面的代码没有执行。

点击此处
隐藏目录