SvelteKit 中抛出错误和返回失败有什么区别?

Vas*_*ass 9 sveltekit

使用时Sveltekit,端点和表单操作处理程序(+page.server.ts 和 +server.ts)存在问题,throw error何时应该return fail使用?为了fail

return fail( status , {details} )
Run Code Online (Sandbox Code Playgroud)

什么时候应该抛出错误?

throw error( status ,  message )
Run Code Online (Sandbox Code Playgroud)

如果从 use:enhancement 表单调用表单操作处理程序和端点,是否会改变哪个更适合使用?两者都会被发送到 use:enhancement 表单处理程序还是错误会绕过它并直接转到 error.svelte?在文档中,我没有看到与抛出的错误相比,如何具体处理失败?

H.B*_*.B. 9

error用于导致+error.svelte显示 的严重问题。

\n

fail用于无效的表单操作结果,可以返回相关数据来显示,例如表单字段的验证错误。

\n
\n

如果由于数据无效而无法处理请求,您可以将验证错误 \xe2\x80\x94 以及之前提交的表单值 \xe2\x80\x94 返回给用户,以便他们可以重试。该fail函数允许您随数据一起返回 HTTP 状态代码(在验证错误的情况下,通常为 400 或 422)。状态代码可通过 获取$page.status,数据可通过form

\n
\n