【发布时间】:2021-08-04 01:13:05
【问题描述】:
下面的代码不会触发 window.onerror,尽管 json() 失败是因为端点没有返回有效的 json,并且没有人捕捉到错误,那么为什么不调用 window.onerror 呢? jsfiddle:https://jsfiddle.net/f287sn05/
代码:
window.onerror=function(error){
alert("errorhandler 1: "+error);
}
if(1){
window.addEventListener("error",function(error){
alert("errorhandler 2: "+error);
});
}
(async function(){
let foo= ((await ( await fetch("/no_json_plz_i_want_an_error")).json()));
})();
【问题讨论】:
-
简短答案是因为错误发生在承诺上下文中。你需要一个 try/catch 来等待并自己捕捉它......jsfiddle.net/t4pfsn75
标签: javascript error-handling fetch