Web Devlopment/NextJs
#9. Error handling
키모형
2025. 3. 28. 15:21
반응형
예를 들어 #8에서 테스트 했던 코드중에 MovieVidios fetch 를 처리 하는 도중 오류가 발생했을 경우
해당 페이지 전체는 오류로 인해 페이지를 표시 할 수 없게 된다.
이때 error.tsx파일을 이용하여 애러를 처리 할 수 있다
(movies)/movies/[id]/page.tsx
import { Suspense } from "react";
import MovieInfo from "../../../components/movie-info";
import MovieVideos from "../../../components/movie-videos";
export const metadata = {
title: "Movie Detail",
}
export default async function MovieDetail({
params,
}: {
params: Promise<{ id: string }>
}) {
// 내부에서 구조 분해 할당
const { id } = await params;
return (
<div>
<h1>Movie Detail Page</h1>
<Suspense fallback={<h3>Loading movie info</h3>}>
<MovieInfo id={id} />
</Suspense>
<h2>Videos</h2>
<Suspense fallback={<h3>Loading movie videos</h3>}>
<MovieVideos id={id} />
</Suspense>
</div>
)
}
error.tsx
애러가 발생한 부분을 error.tsx 에서 리턴한 메시지로 표시하고 나머지 부분은 정상 출력 되는것을 확인 할 수 있다.
해당 파일은 해당 폴더에 속한 pages.tsx 에만 적용이 되며 다른 페이지에서도 적용하려면 별도록 error.tsx를 작성해 주어야 한다.
error를 처리하는 기법은 다양한 case가 존재 하기 때문에 후에 다시 정리 하도록 한다.
반응형