103-《Nodejs开发》-异常处理

19 阅读2分钟

目录

  • 异常的概念
  • 处理异常

一、异常概念

1.1 异常简介

  • 在生活中,异常可以理解为赶飞机途中堵车,堵车就是赶飞机计划中的异常(意外的情况),我们可以将会导致计划不会执行的意外情况统称为异常。

  • 在程序中,导致程序崩溃或终止的意外的情况,就可以理解为异常(简单理解为程序出的错误-error).

  • 在不同编程语言中,都会有表示异常的数据,比如JavaScript会以Error对象来表示程序中出的错误信息。

  • 实际期望:

    • 程序哪怕在报错之后也可以捕获并处理错误,同时可以让程序继续运行。

二、try-catch: 处理异常

2.1 使用语法

  • 目的:实现能够处理程序中报错并能够继续的执行程序

  • 语法

    try{    
    //包含可能会拨错的代码}
    catch(error){    
    //当try里的代码报错是会执行这里的代码,执行后会继续执行try-catch代码块后续的代码。}
    
  • 特点

    • 当try里的代码报错后会执行catch中的代码,执行后会继续执行try-catch代码块后续的其他代码
  • 原理

    • try-catch本质是JavaScript会监听try里 所有代码,一旦发生错误会跳转到catch中并执行,并处理掉该错误,方便程序继续运行。但是监听代码是有性能开销,try里的代码越多,性能消耗就越大,直观体验,就是服务器反应慢。

2.2 例子:服务器编程

  • 在分页查询时,用户如果输入不合法的页数,可能会导致程序报错,服务器崩溃。为了保证服务器的稳定性,可以使用try-catch对分页业务代码进行包裹

    //分页查询
    router.get("/findByPage",async function(req,res){
        try {
            let {pageNum,pageSize} = req.query;
        //分页查询
        // 跳过的数量; (pageNum - 1) * pageSize  
            let result = await movieTypesModel.find().skip((pageNum - 1) * pageSize).limit(pageSize);
            res.send({code:200,message:'分页查询成功',data:result})
        } catch (error) {
            console.log('报错来源',error);
            //告诉用户参数有问题
            res.send({code:-1,message:'分页查询失败,参数有误'})
        }
    })