运行时包管理器打包器测试运行器代码检查格式化指南参考博客反馈

错误处理

学习如何在 Bun 的开发服务器中处理错误

默认情况下,Bun.serve() 以开发模式运行。设置 NODE_ENV=production 或传入 development: false 时,会关闭开发模式。

server.ts
Bun.serve({
  development: false, // [!code ++]
  fetch(req) {
    throw new Error("woops!");
  },
});

在开发模式下,如果请求处理程序抛出错误,且没有 error 处理程序返回响应,Bun 会返回内置错误页面,其中包含错误消息、堆栈跟踪、每个堆栈帧周围的源代码以及文件路径。此页面旨在用于本地调试。

Bun 内置的 500 错误页面

error 回调

要处理服务器端错误,请实现 error 处理程序。发生错误时,返回一个 Response 以发送给客户端。在 development 模式下,此响应会替代 Bun 的默认错误页面。

TypeScript
Bun.serve({
  fetch(req) {
    throw new Error("woops!");
  },
  error(error) {
    return new Response(`<pre>${error}\n${error.stack}</pre>`, {
      headers: {
        "Content-Type": "text/html",
      },
    });
  },
});