Javascript异步操作的异常处理

try {
    throw new Error(3)
} catch (e) {
    console.log(e)
}

try {
    setTimeout(function () {
        throw new Error(5)
    }, 100)
} catch (e) {
     console.log(e)
}

以上代码中,在浏览器是分别输出Error: 3(正常打印出错误实例,未报错)和 Uncaught Error: 5(一个未捕获错误):

Javascript异步操作的异常处理

原因:以上例子中第二个try catch捕获不到错误,因为不在

要捕获到异常,必须在throw new Error的直接外层用try catch包起来才行:

    setTimeout(()=>{
        try{
            throw new Error('fail');
        }catch (e){
            console.log(e);
        }
    },1000);

 

上一篇:【javascript】利用 a 标签自动解析 url


下一篇:java – 无效输入请求的REST服务的异常