Skip to main content

在 SvelteKit 中有两类错误:预期的 错误和 未预期的 错误。

预期错误是指通过 @sveltejs/kit 的帮助函数 error 创建的错误,如同 src/routes/expected/+page.server.js 文件中的那样:

src/routes/expected/+page.server.js
import { error } from '@sveltejs/kit';

export function load() {
	throw error(420, 'Enhance your calm');
}

其他的错误,比如 src/routes/unexpected/+page.server.js 文件中的这个,会被当作是未预期的:

src/routes/unexpected/+page.server.js
export function load() {
	throw new Error('Kaboom!');
}

当你抛出一个预期错误的时候,你实际上在告诉 SvelteKit “不用担心,我知道我在做什么”。而相对的,未预期错误会被当作应用的一个 bug。当出现未预期的错误时,其错误信息和追溯栈会被记录到控制台。

在之后的章节中我们会学习如何使用 handleError 这个 hook 来自定义错误处理。

如果你点击应用中的链接,你会发现一个重要的不同:预期的错误会展示给用户,而未预期的错误会被重定向,然后给用户展示一个通用的“内部错误”信息和 500 状态码。这是因为这种错误信息可能包含敏感数据。

Next: 错误页面

1
2
<h1>home</h1>
 
initialising