GraphQL 是现代 API 开发中广受欢迎的一种技术,它提供了一种有效的方式来查询和获取数据。然而,和任何的编程语言和框架一样,GraphQL 查询和字段中都有可能发生错误。因此,你需要学习如何捕获和处理这些错误。
异常处理
当发生错误时,GraphQL 服务器将抛出异常。这些异常可以是 GraphQL 自定义异常,也可以是 JavaScript 中的异常。在执行查询时,你可以使用 try/catch
块来捕获这些异常。例如:
try { const result = await graphql(schema, query); console.log(result); } catch (error) { console.error(error); }
这个例子中,我们使用了 graphql
函数来执行查询,并在 try
块中捕获了任何可能的异常。如果发生异常,它将被发送到 catch
块,我们在这里处理异常。
捕获字段错误
除了整个查询抛出的异常之外,字段本身也可能会抛出异常。例如,如果你正在查询一个不存在的字段或者一个无效的参数,GraphQL 可能会抛出异常。同样,在这种情况下,你也可以使用 try/catch
块来处理异常。
-- -------------------- ---- ------- ----- ------ - ------------- ---- ----- - ----------- -------- ------- - --- ----- ---- - - ------ -- ---- -- -- - -- ------- - ----- --- ----------- -- ------------ - ------ ------- ---------- -- -- ----- ----- - - - ----- - -- --- - ----- ------ - ----- --------------- ------ ------ -------------------- - ----- ------- - --------------------- -
在这个例子中,我们定义了一个查询 hello
,它需要一个 name
参数。然后我们在查询中省略了 name
参数,这将导致字段抛出异常。我们使用 try/catch
块来处理此异常,并输出错误消息。
处理自定义异常
GraphQL 还允许你抛出自定义异常,这将使你的代码更加灵活。要抛出自定义异常,你可以使用 GraphQLError
函数,同时传递错误消息作为参数。例如:
-- -------------------- ---- ------- ----- - ------------ - - ------------------------- ----- ------ - ------------- ---- ----- - ----------- -------- ------- - --- ----- ---- - - ------ -- ---- -- -- - -- ------- - ----- --- ------------------ -- ------------ - ------ ------- ---------- -- -- ----- ----- - - - ----- - -- --- - ----- ------ - ----- --------------- ------ ------ -------------------- - ----- ------- - --------------------- -
在这个例子中,我们抛出了一个 GraphQLError
异常,以指示缺少 name
字段。在执行查询时,我们将其捕获并处理它们。
结论
在 GraphQL 开发中,捕获和处理异常是非常重要的技能。本文介绍了如何使用 try/catch
块来捕获 GraphQL 查询和字段中的任何异常,以及如何处理自定义异常。希望本文能帮助你更好地理解 GraphQL 中的异常处理,并帮助你更好地编写代码。
参考资料
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672093b72e7021665e02e3c8