Resource not found異常的一個可能原因
場景
在我目前項目中,有一個用來建立記錄的LWC元件。建立記錄的流程大緻為以下三步:
- 使用者輸入資訊
- 使用者點選儲存,背景處理資料,建立記錄
- 記錄建立成功,跳轉到相應記錄頁面
但是我發現,有時候在使用者點選儲存之後,在表單頭會報錯
Resource not found
。這個錯誤資訊很奇怪,因為一般這種錯誤資訊隻會出現在調用REST API的場景。
排查
其實一開始排查這個錯誤的時候,我是往建立記錄的時候遇到錯誤的方向排查的。我以為是目前使用者簡檔對對象中某些字段沒有權限造成的。這也和錯誤資訊所表達的資訊相似。但是經過排查之後,我發現記錄實際上已經被建立了。
找到原因
那麼,在記錄被建立的情況下,是什麼出錯了呢?我們回到整個流程中,1、2步實際上是成功的,錯誤發生在第三步。原來,我建立的這個對象,在某些字段值較為特殊的情況下,會将閱讀權限隻賦予給記錄的所有人。如果目前建立的使用者并非建立後的記錄的所有人,那麼目前使用者将沒有權限看到這條記錄,是以,也就會遇到
Resource not found
的錯誤。目前使用者的視角上來看,這條記錄是不存在的。
解決方案
解決方案就仁者見仁智者見智了,你可以在跳轉頁面前檢查一下對跳轉的記錄有沒有權限,以保證在沒有權限的情況下,提示使用者錯誤資訊。另一種方式是,如果背景傳回的錯誤資訊為
Resource not found
,則你自定義一個使用者能看懂的資訊,并且跳轉回清單畫面。總之,根據業務友好的方式,設計你的處理方式。