域名 AXUM.RS 将于2025年10月到期。我们无意再对其进行续费,我们希望你能够接续这个域名,让更多 AXUM 开发者继续受益。
  • 方案1️⃣AXUM.RS 域名 = 3000
  • 方案2️⃣方案1️⃣ + 本站所有专题原始 Markdown 文档 = 5000
  • 方案3️⃣方案2️⃣ + 本站原始数据库 = 5500
如果你有意接续这份 AXUM 情怀,请与我们取得联系。
说明:
  1. 如果有人购买 AXUM.RS 域名(方案1️⃣),或者该域名到期,本站将启用新的免费域名继续提供服务。
  2. 如果有人购买了 AXUM.RS 域名,且同时购买了内容和/或数据库(方案2️⃣/方案3️⃣),本站将关闭。届时我们或许会以另一种方式与你再相遇。

错误处理

本章将讨论 Next.js 的错误处理。

NotFound 错误处理

// app/not-found.js

import React from "react";

export default function NotFound() {
  return <div>你访问的页面不存在</div>;
}

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

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

page.js

layout.js

本规则同样适用于 template.js

本规则同样适用于 template.js

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

app/layout.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/错误处理分支。

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