error.js 里面的疑问

来源:3-3 错误处理

南极科考队

2018-03-11 21:14

我发现代码error.js 里面就算没有后面的.catch()那部分,也会输出错误信息,如果我把.catch()括号里面的内容改为

console.log('Errorrrrrr:',error.message);

输出的错误信息还是上面的Error bye,也就表示并没有执行catch里面的内容,和老师讲的原理不一样呢,可以帮忙解释一下吗?


写回答 关注

2回答

  • 三只松鼠
    2018-10-03 11:28:48

    楼上已经回答了,我也说一下关于 throw new Error('error')的看法:

    1. 如果不是放在定时器里面,后面的catch可以捕获到;

       2.如果放在定时器里面(又或者跟之前的课程一样放在一个立即执行函数里面),后面的catch就捕获不到了,不过全局window.onerror可以捕获到。

    综上,本质是函数是否进入同一个执行栈,从而影响后续的捕获。

  • 慕斯卡1506133
    2018-03-12 18:05:01

    throw new Error("bye"),不应该放在定时器里执行,那样捕捉不到,拿出来就可以了

Promise 入门

带你入门 Promise。

31559 学习 · 42 问题

查看课程

相似问题