错误处理

NotFound 错误处理

按照约定,只需要创建一个名为 not-found.js 的文件即可。当请求的路由不存在时,Next.js 会自动展示该文件定义的组件:

遵循层级机制:从当前路由同级目录开始找,然后到父路由里找,最后到 App 根目录找。如果均未找到,使用 Next.js 自带的。

服务内部错误处理

遵循层级机制:从当前路由同级目录开始找,然后到父路由里找,最后到 App 根目录找。如果均未找到,使用 Next.js 自带的。

page.js

layout.js

layout.js 的错误由父路由(而不是本路由)的 error.js 处理

app/layout.js

对于根布局,由于它已经是最顶层的路由,没有父路由了,所以它的错误由 app/global-error.js 处理。

"use client";

export default function GlobalError({ error, reset }) {
  return (
    <html>
      <body>
        <h2>[global-error] 出错啦!</h2>
        <div>{error.toString()}</div>
        <button onClick={() => reset()}>重试</button>
      </body>
    </html>
  );
}

本章代码位于05/错误处理分支。

要查看完整内容,请先登录