面试题答案
一键面试// 模拟不同类型的异步函数
async function asyncFunction1() {
// 模拟网络异常
throw new Error('Network error');
}
async function asyncFunction2() {
// 模拟数据解析异常
throw new Error('Data parsing error');
}
// 通用的错误处理函数
function handleError(error) {
if (error.message.includes('Network error')) {
console.error('处理网络异常:', error.message);
} else if (error.message.includes('Data parsing error')) {
console.error('处理数据解析异常:', error.message);
} else {
console.error('处理其他异常:', error.message);
}
}
// 异步操作链
async function asyncChain() {
try {
await asyncFunction1();
await asyncFunction2();
} catch (error) {
handleError(error);
}
}
// 执行异步操作链
asyncChain();
上述代码中:
- 定义了两个模拟的异步函数
asyncFunction1
和asyncFunction2
,分别抛出不同类型的异常。 handleError
函数用于区分不同类型的异常,并进行针对性处理。通过检查异常信息中是否包含特定的字符串来判断异常类型。asyncChain
函数是异步操作链,使用try...catch
捕获异常,并调用handleError
函数进行处理。- 最后执行
asyncChain
函数启动整个异步操作链。
这种方式保证了代码的可读性和可维护性,当有新的异常类型出现时,只需在 handleError
函数中添加新的判断逻辑即可。