Tutorials/NextJS/Getting Started
Lesson

Error Handling

Getting Started/NextJS

๐Ÿš€ Next.js Error Handling (Easy Notes)

๐Ÿ“Œ 1. Error Types

๐Ÿ‘‰ 2 types ke errors hote hain:

๐ŸŸข 1. Expected Errors

  • Normal errors (API fail, form validation)

๐Ÿ”ด 2. Unexpected Errors

  • Bugs / crash / exception


๐ŸŸข 2. Expected Error Handle (Best เคคเคฐเฅ€เค•เคพ)

๐Ÿ‘‰ Server Action me handle karo
๐Ÿ‘‰ Throw mat karo โŒ
๐Ÿ‘‰ Return karo โœ…

plaintext
"use server"

export async function createPost(prevState, formData) {
  const title = formData.get("title")

  if (!title) {
    return { message: "Title required" }
  }

  return { message: "Success" }
}

๐Ÿ’ป Client me show karo

plaintext
"use client"
import { useActionState } from "react"

const [state, action, pending] = useActionState(createPost, { message: "" })

<form action={action}>
  <input name="title" />
  <p>{state.message}</p>
  <button disabled={pending}>Submit</button>
</form>

๐Ÿ‘‰ Error message UI me dikhega


๐Ÿ–ฅ๏ธ 3. Server Component Error

plaintext
export default async function Page() {
  const res = await fetch("api/data")

  if (!res.ok) {
    return "Error aa gaya"
  }

  return "Success"
}

๐Ÿšซ 4. 404 Page (notFound)

plaintext
import { notFound } from "next/navigation"

if (!data) {
  notFound()
}

๐Ÿ‘‰ Custom page:

plaintext
export default function NotFound() {
  return <h1>404 Page</h1>
}

๐Ÿ”ด 5. Unexpected Error (Error Boundary)

๐Ÿ‘‰ error.js file create karo

plaintext
"use client"

export default function Error({ error, unstable_retry }) {
  return (
    <div>
      <h2>Error aa gaya</h2>
      <button onClick={unstable_retry}>Try Again</button>
    </div>
  )
}

๐Ÿ‘‰ Auto catch karega errors


๐Ÿงฉ 6. Error Boundary Concept

๐Ÿ‘‰ Error aaya โ†’ pura app crash nahi hoga

๐Ÿ‘‰ Sirf us component ka fallback dikhega

๐Ÿ“Œ Next.js automatically handle karta hai


โš ๏ธ 7. Event Handler Error

๐Ÿ‘‰ Error boundary handle nahi karta

plaintext
"use client"
import { useState } from "react"

const [error, setError] = useState(null)

try {
  throw new Error("Fail")
} catch (e) {
  setError(e)
}

๐Ÿ‘‰ Manual handle karna padega


๐Ÿ”„ 8. Retry Feature

๐Ÿ‘‰ Error me retry option hota hai

plaintext
<button onClick={unstable_retry}>
  Try Again
</button>

๐Ÿ‘‰ Component re-render hoga


๐ŸŒ 9. Global Error

๐Ÿ‘‰ Pure app ke liye error

plaintext
"use client"

export default function GlobalError() {
  return (
    <html>
      <body>Error aa gaya</body>
    </html>
  )
}

๐Ÿง  10. Important Rules (Interview)

  • Expected error โ†’ return value

  • Unexpected โ†’ throw error

  • error.js โ†’ boundary

  • notFound() โ†’ 404

  • useActionState โ†’ form error


๐Ÿ”ฅ Short Revision (1 min)

๐Ÿ‘‰ Error 2 type:

  • Expected

  • Unexpected

๐Ÿ‘‰ error.js = fallback UI

๐Ÿ‘‰ notFound = 404

๐Ÿ‘‰ Event error = manual


๐Ÿ’ฅ Super Simple Line

๐Ÿ‘‰ "Next.js me errors ko safe handle karne ke liye error boundaries aur server actions use hote hain"


๐Ÿš€ Full Flow


  1. Error aaya


  2. Handle (return / throw)


  3. UI show fallback


  4. Retry possible