Resource not found异常的一个可能原因
场景
在我当前项目中,有一个用来创建记录的LWC组件。创建记录的流程大致为以下三步:
- 用户输入信息
- 用户点击保存,后台处理数据,创建记录
- 记录创建成功,跳转到相应记录页面
但是我发现,有时候在用户点击保存之后,在表单头会报错 Resource not found
。这个错误信息很奇怪,因为一般这种错误信息只会出现在调用REST API的场景。
排查
其实一开始排查这个错误的时候,我是往创建记录的时候遇到错误的方向排查的。我以为是当前用户简档对对象中某些字段没有权限造成的。这也和错误信息所表达的信息相似。但是经过排查之后,我发现记录实际上已经被创建了。
找到原因
那么,在记录被创建的情况下,是什么出错了呢?我们回到整个流程中,1、2步实际上是成功的,错误发生在第三步。原来,我创建的这个对象,在某些字段值较为特殊的情况下,会将阅读权限只赋予给记录的所有人。如果当前创建的用户并非创建后的记录的所有人,那么当前用户将没有权限看到这条记录,因此,也就会遇到 Resource not found
的错误。当前用户的视角上来看,这条记录是不存在的。
解决方案
解决方案就仁者见仁智者见智了,你可以在跳转页面前检查一下对跳转的记录有没有权限,以保证在没有权限的情况下,提示用户错误信息。另一种方式是,如果后台返回的错误信息为Resource not found
,则你自定义一个用户能看懂的信息,并且跳转回列表画面。总之,根据业务友好的方式,设计你的处理方式。