Nestjs(graphql)中不同类型的异常处理

Posted

技术标签:

【中文标题】Nestjs(graphql)中不同类型的异常处理【英文标题】:Different kinds of exception handling in nestjs (graphql) 【发布时间】:2021-04-27 01:19:07 【问题描述】:

我在我的 nestjs 项目中使用 GraphQLFederationModule,现在正在处理异常处理部分。我使用 formatError 来捕获解析器中抛出的所有异常。

基本上我有4种异常来源:

    与其他服务无关的解析器/服务逻辑错误。 来自数据库的错误,即 mongoDb(使用 nestjs/mongoose)。 使用 graphql-request 从其他 graphql 服务器调用 api 时出错。 使用 axios 从其他 RESTful api 服务器调用 api 时出错。

对于每种异常,我都需要以不同的方式处理。那么问题来了,如何从传入 formatError 的错误中判断是哪种异常呢?

谢谢。

【问题讨论】:

【参考方案1】:

我找不到解决这个问题的“好”方法,所以我只是通过内容来确定它们: https://github.com/VictorCheng114668/nestjs-helper/blob/main/graphqlModule-formatError-helper/exceptionsHandler.ts

【讨论】:

以上是关于Nestjs(graphql)中不同类型的异常处理的主要内容,如果未能解决你的问题,请参考以下文章

通过 Apollo Server (NestJS) 处理异常

更新nestjs/graphql后没有通过标头

如何将 graphQL 查询属性映射到不同的响应属性?

错误:使用 Nestjs + Graphql + Typeorm 时无法确定 GraphQL 输入类型

在 NestJS + GraphQL 中实现“命名空间类型”解析器

如何根据 GraphQL (NestJS) 中的条件发送不同的订阅响应?