在我的架构中,我有一个存储库获取函数,它在 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。
授权是在http级别,所以不要抛出新的NotFoundExeption,
throw new HttpException('Forbidden', HttpStatus.FORBIDDEN)