javascript - 我应该在 GraphQL Scalar 中抛出一般错误吗?

标签 javascript error-handling graphql graphql-js

我正在尝试在 GraphQL 和 graphql-yoga 中为服务器定义标量类型。问题是我试图决定在这种情况下我应该抛出 GraphQLError 还是只抛出 TypeError

目前,我正在使用通用错误。

export const URIScalar = new GraphQLScalarType({
  name: 'URI',
  description: 'A URI whose scheme is \'http\' or \'https\'',
  serialize(value) {
    if (isURI(value)) {
      return value;
    } else {
      throw new Error('URI format is invalid');
    }
  },
  parseValue(value) {
    if (isURI(value)) {
      return value;
    } else {
      throw new Error('URI format is invalid');
    }
  },
  parseLiteral(ast) {
    if (ast.kind === 'StringValue') {
      if (isURI(ast.value)) {
        return ast.value;
      } else {
        throw new Error('URI format is invalid');
      }
    } else {
      throw new Error('URI type must be string');
    }
  },
});

最佳答案

一般错误是完美的,因为其中的信息是有用的。

客户端将按预期收到错误,您将能够在软件中找到错误的来源。

当您需要更多相关数据时,自定义错误非常有用,但您所拥有的将起作用。

关于javascript - 我应该在 GraphQL Scalar 中抛出一般错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56334924/

相关文章:

javascript - 动态加载 JavaScript 文件并确保它们被缓存

javascript - Emscripten webworker - 自己的消息和依赖项

python - 处理 IncompleteRead,URLError

asp.net 错误显示字节偏移量而不是行号,即使在 Debug模式下也是如此

python - 在 Django Rest Framework 自定义异常处理程序响应数据中包含请求数据

python - 如何使用 Python 使用 Github GraphQL API?

react-native - 如何在react-apollo graphql查询中正确使用动态变量?

javascript - Jquery 菜单和 Logo 切换

javascript - 原型(prototype)继承 - 编写

python - 如何在 graphene-django 中仅向用户配置文件所有者显示特定字段?