[javascript] Next.js에서의 예외 처리 방법은 어떤 것이 있나요?
1. Custom Error Handling 페이지
Next.js는 _error.js
파일을 통해 에러 처리 페이지를 커스텀할 수 있는 기능을 제공합니다. 이 페이지를 사용하여 특정 타입의 에러를 처리하거나 전역 에러 핸들링을 구현할 수 있습니다.
// _error.js
import React from 'react';
class ErrorPage extends React.Component {
static getInitialProps({ res, err }) {
// 에러 정보를 받아와서 커스텀 에러 페이지를 렌더링할 수 있습니다.
return { statusCode: res ? res.statusCode : err ? err.statusCode : null };
}
render() {
const { statusCode } = this.props;
return (
<div>
<h1>{statusCode ? `An error ${statusCode} occurred on server` : 'An error occurred on client'}</h1>
{/* 커스텀 에러 페이지를 디자인할 수 있습니다 */}
</div>
);
}
}
export default ErrorPage;
2. getServerSideProps() 내에서 예외 처리
getServerSideProps()
함수 내에서 에러가 발생하는 경우, 커스텀 에러 처리 로직을 구현할 수 있습니다. 이는 서버 사이드에서 데이터를 가져오는 로직을 작성할 때 유용합니다.
// pages/some-page.js
export async function getServerSideProps() {
try {
// 데이터 가져오는 로직
const data = await fetch('https://api.example.com/data');
const jsonData = await data.json();
return {
props: {
data: jsonData,
},
};
} catch (error) {
console.error('Error occurred while fetching data:', error);
return {
props: {
error: true,
},
};
}
}
export default function SomePage({ data, error }) {
if (error) {
// 커스텀 에러 페이지를 렌더링하거나 에러 메시지를 표시할 수 있습니다.
return <p>Error occurred while fetching data</p>;
}
// 데이터를 기반으로 페이지 렌더링 로직
}
이런 식으로 Next.js에서 예외를 처리할 수 있으며, _error.js
를 사용하여 전역적인 에러 핸들링도 구현할 수 있습니다. 추가적으로 Next.js 공식문서를 참고하시면 더 많은 예외 처리 방법을 확인하실 수 있습니다.