Routing: Error Handling

error.js 파일 규칙을 사용하면 중첩된 라우트에서 예기치 않은 런타임 오류를 우아하게 처리할 수 있습니다.

에러 UI를 만들려면 라우트 세그먼트 내에 error.js 파일을 추가하고 React 컴포넌트를 내보냅니다:

Untitled

'use client' // Error components must be Client Components
 
import { useEffect } from 'react'
 
export default function Error({
  error,
  reset,
}: {
  error: Error & { digest?: string }
  reset: () => void
}) {
  useEffect(() => {
    // Log the error to an error reporting service
    console.error(error)
  }, [error])
 
  return (
    <div>
      <h2>Something went wrong!</h2>
      <button
        onClick={
          // Attempt to recover by trying to re-render the segment
          () => reset()
        }
      >
        Try again
      </button>
    </div>
  )
}

[코드] app/dashboard/error.tsx

How error.js Works

Untitled

Recovering From Errors

오류의 원인은 때로는 일시적일 수 있습니다. 이러한 경우에는 단순히 다시 시도하면 문제가 해결될 수 있습니다.

오류 컴포넌트는 reset() 함수를 사용하여 사용자에게 오류에서 복구를 시도하도록 요청할 수 있습니다. 함수를 실행하면 Error 바운더리의 내용을 다시 렌더링하려고 시도합니다. 성공하면 대체 오류 컴포넌트가 다시 렌더링 결과로 대체됩니다.