为了账号安全,请及时绑定邮箱和手机立即绑定

捕获回调函数中的异常?

捕获回调函数中的异常?

阿晨1998 2018-10-16 15:16:19
function throwError(){  throw new Error('ERROR'); }  try{   setTimeout(throwError, 0); } catch(e){   alert(e);//这里的异常无法捕获}这样可以function throwError(){ try{  throw new Error('ERROR');  } } catch(e){   alert(e);//这里的异常无法捕获}   setTimeout(throwError, 0);为什么第一个例子的异常不能捕获?
查看完整描述

1 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

这个是16年提出的问题,相信题主已经知道答案了,但我还是回答一下,供后面同学参考:

try...catch是被设计成捕获当前执行环境的异常,意思是只能捕获同步代码里面的异常,异步调用里面的异常无法捕获。
第一种方式:异常出现在异步调用里面,try..catch无法捕获。
第二重方式:try..catch是写在异步代码里面,相对于try里面的所有执行都是同步代码,所以能捕获。


查看完整回答
反对 回复 2018-11-01
  • 1 回答
  • 0 关注
  • 860 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号