async+await的异常处理推荐使用try+catch语句将所有执行代码进行包裹,它将处理所有可能出现的异常,相当于在链式调用的最后面加上catch()方法:
"use strict"; async function task01() { console.log("run task 01"); } async function task02() { throw new Error("task02 error"); console.log("run task 02"); } async function task03() { console.log("run task 03"); } async function main() { try { await task01(); await task02(); await task03(); } catch (e) { console.log(e); } } main();
也可以在主函数外部使用catch()方法来处理异常,但是我并不推荐这么做。
"use strict"; async function task01() { console.log("run task 01"); } async function task02() { throw new Error("task02 error"); console.log("run task 02"); } async function task03() { console.log("run task 03"); } async function main() { await task01(); await task02(); await task03(); } main().catch(reason => { console.log(reason); });
除此之外,你也可以使用try+catch语句块对单独的async函数语句块进行处理,预防可能出现的异常。