使用 GraphQL 时如何处理错误和异常

阅读时长 3 分钟读完

GraphQL 是一种用于 API 构建的查询语言。它使得前端开发人员可以更加精确地指定其数据需要,从而避免不必要的数据传输和性能瓶颈。虽然 GraphQL 是一种强大的工具,但使用它时仍然可能会遇到错误和异常。本文将探讨 GraphQL 的错误和异常处理。

GraphQL 错误处理

错误是指一些从 GraphQL 服务器返回的无效 JSON 响应。例如,服务器返回的 JSON 格式不正确,或查询中包含无效字段。GraphQL 的响应中包含了一个 errors 字段,它包含一个错误数组。如果没有错误,errors 字段仍然存在,但它的值为空数组。

以下是一个例子,演示如何检查是否有错误:

-- -------------------- ---- -------
----------------- -
  ------- -------
  -------- - --------------- ------------------ --
  ----- ---------------- ------ -- ----- -- ---
--
  --------- -- -----------
  --------- -- -
    -- ------------ -
      ------------------------
    - ---- -
      ----------------------
    -
  ---

在上面的代码中,我们使用 fetch 函数获取 /graphql 端点的响应。如果响应包含错误,我们将打印它们。否则,我们将打印获取的数据。

GraphQL 异常处理

异常是指一些无法预测的运行时错误。例如,查询中可能包含未定义的变量,或解析查询时出现语法错误。为了处理异常,我们可以使用 GraphQL 的错误处理函数。

-- -------------------- ---- -------
----- - -------- ----------- - - -------------------

----- ------ - -------------
  ---- ----- -
    ----------- -------- ------
  -
---

----- --------- - -
  ------ -- ---- -- -- -
    -- ----- --- ----- -
      ----- --- ----------- ------ -- -------
    -
    ------ ------- ----------
  --
--

----- ----------- - ----- -- -
  ---------------------
  ------ -
    -------- --------------
  --
--

--------------- -- ----------- ----- --- ----------
  ------------ -- --------------------
  --------------------

--------------- -- ----------- ------- --- ----------
  ------------ -- --------------------
  --------------------

在上面的代码中,我们定义了一个 hello 查询,并使用 rootValue 对象作为查询的根。在 hello 方法中,如果 name 参数为 null,我们将抛出一个异常。然后,我们定义了一个名为 handleError 的错误处理函数,它将捕获任何异常并打印它们。最后,我们分别用 namenullJohn 的参数运行查询,并打印结果。

结论

本文介绍了如何处理 GraphQL 的错误和异常。错误是无效的 JSON 响应,可以在响应中的 errors 字段中检测它们。异常是运行时错误,可以使用 GraphQL 的错误处理函数来捕获它们。掌握这些技巧可以帮助您构建更可靠和健壮的 GraphQL API。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66fa5fb144713626014bd675

纠错
反馈