跳至主要内容
版本: v18.0.0

@throwOnFieldError 指令

@throwOnFieldError 指令可以添加到片段和查询中。当使用此指令时,如果在读取片段或查询时遇到具有字段错误的字段,或者由于图关系更改导致 Relay 缺少数据,Relay 运行时将抛出异常。

除了在遇到字段错误时导致 Relay 运行时抛出异常外,@throwOnFieldError 指令还允许为在模式中具有 @semanticNonNull 指令的字段生成非空 Flow 类型。这意味着,如果字段具有 @semanticNonNull 指令,则该字段的生成 Flow 类型将是非空的;如果在读取该字段时发生错误,则抛出的异常将阻止您的应用程序接收空值。

要使用 @throwOnFieldError 指令,请将其添加到 Relay 代码中的片段或查询中。例如

fragment MyFragment on User @throwOnFieldError {
id
name
}

在此示例中,@throwOnFieldError 指令已添加到 MyFragment 片段中。如果此片段中的任何字段(在本例中为 id 和 name)具有字段错误,则 Relay 运行时将在读取片段时抛出异常。

如果您希望在 @throwOnFieldError 片段或查询中本地处理特定字段错误,而不是让该错误抛出,则可以使用@catch捕获该错误。

详细了解 Relay 对语义空值的实验性支持。