js try catch

在JavaScript中,try...catch语句用于捕获同步代码块中的错误。它的基本语法如下:

try {
    // 可能抛出错误的代码
} catch (error) {
    // 处理错误
}

try块中的代码发生错误时,程序会立即跳转到catch块中执行。如果在try块中没有发生错误,则catch块会被跳过。

同步代码示例

以下是一个简单的同步代码示例,展示了如何使用try...catch捕获错误:

function divide(a, b) {
    try {
        return a / b;
    } catch (error) {
        console.error('Error occurred:', error.message);
        return null;
    }
}

const result = divide(10, 0);
console.log(result); // 输出: Error occurred: Division by zero

异步代码示例

对于异步操作,可以使用async/await结合try...catch来捕获错误。以下是一个示例:

async function fetchData(url) {
    try {
        const response = await fetch(url);
        const data = await response.json();
        return data;
    } catch (error) {
        console.error('Error fetching data:', error.message);
        return null;
    }
}

const data = fetchData('https://api.example.com/data');
console.log(data);

简化错误处理

在ES6中,可以使用解构赋值和or操作符来简化错误处理:

async function fetchData() {
    const [error, data] = await fetch("https://api.example.com/data").json();
    if (error) {
        console.error('Fetch error:', error);
        return null;
    }
    return data;
}

多个catch子句

还可以在一个try...catch语句中使用多个catch子句来捕获不同类型的错误:

try {
    // 可能抛出错误的代码
} catch (error1) {
    // 处理第一种错误
} catch (error2) {
    // 处理第二种错误
} finally {
    // 无论是否发生异常都会执行的代码
}

总结

try...catch是JavaScript中非常重要的错误处理机制,它可以有效地捕获和处理同步和异步代码中的错误。通过合理使用try...catch,可以提高代码的健壮性和可维护性。

Top