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

时间:2019-05-28 04:16:34

标签: 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');
    }
  },
});

1 个答案:

答案 0 :(得分:0)

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

客户端将收到预期的错误,您将可以找到错误在软件中的哪个位置。

自定义错误非常适合您需要与之关联的更多数据时使用,但是您所拥有的将可以使用。