js错误处理方式try...catch 与 then...catch

文章类型:Javascript

发布者:hp

发布时间:2024-11-27

一:概述

错误和异常处理是保证代码健壮性和用户体验的重要环节,js提供了多种方式来处理错误,最常见的就是trt...catch和Promise的ten,catch,那么他们的使用场景是什么呢?

二:用途

(一)try...catch

1:定义:用户捕获和处理同步代码中异常的机制

2:结构

try {
    // 可能会抛出异常的代码
} catch (error) {
    // 处理异常
}

3:使用场景:适用于函数调用、操作对象、数组等传统代码中

4:示例:

function divide(a, b) {
    try {
        if (b === 0) {
            throw new Error("Cannot divide by zero");
        }
        return a / b;
    } catch (error) {
        console.error(error.message);
    }
}

divide(4, 0); // 输出: Cannot divide by zero

(二)then...catch

1:定义:用于使用 Promise处理异步操作时,

2:结构

someAsyncFunction()
    .then(result => {
        // 处理成功的结果
    })
    .catch(error => {
        // 处理错误
    });

3:使用场景:用于处理异步操作,例如网络请求、文件读取

4:示例

function fetchData() {
    return new Promise((resolve, reject) => {
        // 模拟异步操作
        setTimeout(() => {
            const success = Math.random() > 0.5; // 随机决定成功或失败
            if (success) {
                resolve("Data fetched successfully");
            } else {
                reject("Failed to fetch data");
            }
        }, 1000);
    });
}

fetchData()
    .then(result => {
        console.log(result);
    })
    .catch(error => {
        console.error(error);
    });

三:总结

1:try....catch 只能捕获同步代码异常,异步根本捕获不到

2:then...catch是Promise的回调函数,用于后续处理