try......catch语句 和 .catch( )方法 的不同处

154 阅读1分钟

下面两个代码片段:(主要区别在于错误处理的方式)

try...catch语句 是 来捕获和处理可能发生的错误。
.catch()方法 是 处理错误

try......catch 语句

  • 用于同步或异步代码块中的错误处理
  • 在try块在执行的代码如果抛出异常(即发生错误),则会立即跳转到catch块来执行。
  • 优点是可以在一个地方集中处理可能出现的所有错误,并且可以进行更复杂的错误处理逻辑。
  • 缺点是语法上可能会显得更冗长一些
async function getData(cityCode) {
    try {
        let res = await axios({
            url:'https://hmajax.itheima.net/api/weather',
            params:{
                city: cityCode
            }
        })
        return res.data
    }catch (err) {
        pxmu.fail('查询天气失败')
    }
}

.catch( )方法

  • 是promise API提供的一种错误处理方式,专门用于处理异步操作中的错误。
  • 当promise被拒绝(即异步操作失败)时,.catch()方法会被调用。
  • 优点是简洁,直接与异步操作关联,易于理解和维护。
  • 缺点是对于需要更复杂错误处理逻辑的情况,可能不如try...catch语句灵活。
async function getData(cityCode) {
        await axios({
            url:'https://hmajax.itheima.net/api/weather',
            params:{
                city: cityCode
            }
        })
        .then(res =>{
            return res.data
        })
        .catch (err =>{ 
        pxmu.fail('查询天气失败')
        })

总结来说:

try...catch 语句更适合于需要对错误进行详细处理的场景,
.catch()方法更适合于简单的错误处理,尤其是在处理异步操作时。