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「別擔心,我知道我在做什麼」。相反地,非預期錯誤則被視為應用程式中的錯誤。當拋出非預期錯誤時,其訊息和堆疊追蹤將會記錄到主控台。
在後續的章節中,我們將學習如何使用
handleError
hook 新增自訂錯誤處理。
如果你點擊這個應用程式中的連結,你會注意到一個重要的差異:預期錯誤訊息會顯示給使用者,而非預期錯誤訊息則會被編輯並替換為通用的「內部錯誤」訊息和 500 狀態碼。這是因為錯誤訊息可能包含敏感資料。
1
2
<h1>home</h1>