๐ 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 โ
"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
"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
export default async function Page() {
const res = await fetch("api/data")
if (!res.ok) {
return "Error aa gaya"
}
return "Success"
}๐ซ 4. 404 Page (notFound)
import { notFound } from "next/navigation"
if (!data) {
notFound()
}๐ Custom page:
export default function NotFound() {
return <h1>404 Page</h1>
}๐ด 5. Unexpected Error (Error Boundary)
๐ error.js file create karo
"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
"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
<button onClick={unstable_retry}>
Try Again
</button>๐ Component re-render hoga
๐ 9. Global Error
๐ Pure app ke liye error
"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
Error aaya
Handle (return / throw)
UI show fallback
Retry possible