在 SvelteKit 中有两种类型的错误 — 预期的错误和意外的错误。
预期的错误是通过 @sveltejs/kit
中的 error
函数抛出的错误,如 src/routes/expected/+page.server.js
中所示:
src/routes/expected/+page.server
import { error } from '@sveltejs/kit';
export function load() {
error(420, 'Enhance your calm');
}
任何其他错误 — 比如在 src/routes/unexpected/+page.server.js
中的错误 — 都被视为意外错误:
src/routes/unexpected/+page.server
export function load() {
throw new Error('Kaboom!');
}
当你抛出一个预期错误时,你是在告诉 SvelteKit “别担心,我知道我在做什么”。相反,意外错误被认为是你的应用程序中的一个 bug。当抛出意外错误时,其错误消息和堆栈跟踪将被记录到控制台。
在后面的章节中,我们将学习如何使用
handleError
钩子添加自定义错误处理。
如果你点击这个应用程序中的链接,你会注意到一个重要的区别:预期的错误消息会显示给用户,而意外的错误消息会被隐藏并替换为通用的”Internal Error”(内部错误)消息和 500 状态码。这是因为错误消息可能包含敏感数据。
1
2
<h1>home</h1>