0Pricing
Sveltejs Academy · 课时

用于服务器错误日志记录的 handleError

捕获意外的服务器错误,并将其发送到日志记录或监控服务。

用于服务器错误日志记录的 handleError 是 CoddyKit 上的免费 Sveltejs Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Sveltejs Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Sveltejs Academy 课程共包含 4 节课。

捕获错误

load 或端点中的意外错误可以通过 handleError 进行观察。

导出 handleError

从 hooks.server.js 中导出。

export async function handleError({ error, event }) {
  console.error(error);
  return { message: "Something went wrong" };
}

返回对象

返回的对象可以在错误页面中通过 $page.error 访问。

发送到日志系统

可以在此钩子中将错误转发到 Sentry、Datadog 或任何日志服务。

避免泄露详细信息

在生产环境中不要向客户端返回原始错误消息。使用通用消息和跟踪 ID 更安全。

跟踪 ID

为每个错误生成唯一的 ID,将其返回给用户,并在内部记录日志以便支持人员排查。

客户端变体

hooks.client.js 同样支持使用 handleError 处理仅发生在客户端的错误。

区分错误

预期错误(来自 error())会跳过 handleError。只有意外错误才会触发它。

异步日志记录

日志记录可以异步进行;如果日志记录器速度较慢,请不要阻塞响应。

堆栈跟踪

请在日志中包含堆栈跟踪;它们对调试至关重要。

自定义错误页面

将 handleError 与 +error.svelte 结合,可以打造出色的面向用户的体验。

快速检查

handleError 何时触发?

总结

hooks.server.js 中的 handleError 会集中记录意外错误,并定制用户可见的消息。

常见问题解答

「用于服务器错误日志记录的 handleError」课时是免费的吗?

是的 — 「用于服务器错误日志记录的 handleError」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Sveltejs Academy 课程的其余内容,请升级到 CoddyKit PRO。 Sveltejs Academy 课程共包含 4 节课。

「用于服务器错误日志记录的 handleError」这节课中我会学到什么?

捕获意外的服务器错误,并将其发送到日志记录或监控服务。 你通过在浏览器中直接运行的动手代码来练习 Sveltejs Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Sveltejs Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Sveltejs Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「用于服务器错误日志记录的 handleError」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Sveltejs Academy 课中编写并运行代码吗?

能。每节 Sveltejs Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. handle() 钩子:请求中间件
  2. 用于服务器错误日志记录的 handleError
  3. init() 钩子
  4. 使用 Sequence() 组合钩子
← 返回 Sveltejs Academy