@throwOnFieldError 指令
@throwOnFieldError
指令可以添加到片段和查詢中。當使用此指令時,如果讀取片段或查詢時遇到帶有欄位錯誤的欄位,或者 Relay 因為圖形關係變更而缺少資料時,Relay 執行時將會拋出例外。
除了在遇到欄位錯誤時導致 Relay 執行時拋出例外之外,@throwOnFieldError
指令還能夠為在 schema 中具有 @semanticNonNull
指令的欄位生成非空 Flow 類型。這表示如果欄位具有 @semanticNonNull
指令,則該欄位產生的 Flow 類型將為不可為空;如果在讀取該欄位時發生錯誤,拋出的例外將防止您的應用程式接收到空值。
若要使用 @throwOnFieldError
指令,請將其添加到 Relay 程式碼中的片段或查詢中。例如:
fragment MyFragment on User @throwOnFieldError {
id
name
}
在此範例中,@throwOnFieldError
指令已新增至 MyFragment 片段。如果此片段中的任何欄位(在此範例中為 id 和 name)有欄位錯誤,則 Relay 執行時將在讀取片段時拋出例外。
如果您希望在 @throwOnFieldError
片段或查詢中本機處理特定的欄位錯誤,而不是讓該錯誤拋出,您可以使用 @catch 來捕獲錯誤。
深入了解 Relay 對語意空值性的實驗性支援。