@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 对语义空值的实验性支持。