koa 捕获sql异常

try...catch开始懵了
对于从数据库增删改查数据,例如在做一个删除用户的操作,是不是都需要捕获异常。
是不是对任何数据库操作都需要做异常处理,try.catch?
[是的话我觉得好麻烦]

  User.destroyUser = async function (Id) {
    try {
        const res = await this.destroy({
          where: {
            Id
          }
        })    
    } catch (e) {
        throw(e)
    }

    return res
  }
阅读 2.5k
2 个回答

封装一个函数,比如叫warp() ,这个wrap的参数就是你要处理的那个逻辑。

async function dosomething(){
    const res = await this.destroy({
      where: {
        Id
      }
    })  
}
wrap(function()){
    try{
        function()
    }catch(){
    }
}


剩下的就是在调用具体的逻辑的时候,在外面包一层`wrap`就好,写一次的`try catch`就可以了。
从程序的健壮性来说,是所有的操作都是要捕获异常的,因为异常是不确定性的。只有所有的代码都处理,才是健壮性的,对于单线程的JS来说,更为重要。

可以改写成new Promise().then().catch()的形式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题