更改 NestJS 中的异常类型

问题描述 投票:0回答:1

在我的架构中,我有一个存储库获取函数,它在 try-catch 块中发出数据库请求,如果不存在用户,则返回未找到异常。在登录函数中,我调用存储库获取函数,但想抛出未经授权的异常而不是未找到。我该怎么做?据我了解,嵌套的 try-catch 块不会互相调用。 我当前的代码是这样的

async get_user(email){
  try {
    db.user.findOrThrow(email);
  } catch (e) { 
    throw new NotFoundException;
  }
}

async login (email) {
  try {
    get_user(email);
  } catch (e) {
    throw new UnauthorisedException;
  }
}

但是使用不存在的电子邮件调用登录会返回 404 而不是 401。

error-handling nestjs try-catch
1个回答
0
投票

授权是在http级别,所以不要抛出新的NotFoundExeption,

throw new HttpException('Forbidden', HttpStatus.FORBIDDEN)
© www.soinside.com 2019 - 2024. All rights reserved.