What is the \_error.js file in Next.js?
Assesses fundamental understanding of Next.js conventions, runtime behavior, and memory/performance considerations.
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
In the Next.js Pages Router, pages/_error.js (or _error.tsx) is a fallback error page rendered whenever an unhandled HTTP exception (such as a 500 internal server error or unhandled runtime rejection) occurs:
### Key Functionality:
- Captures status codes from server responses (
res.statusCode) or client errors (err.statusCode). - Overrides Next.js's default error page with custom branded styling.
### Example Implementation:
// pages/_error.tsx
import { NextPageContext } from 'next';
function Error({ statusCode }: { statusCode?: number }) {
return (
<div className="error-container">
<h1>{statusCode ? `An error ${statusCode} occurred on server` : 'An error occurred on client'}</h1>
</div>
);
}
Error.getInitialProps = ({ res, err }: NextPageContext) => {
const statusCode = res ? res.statusCode : err ? err.statusCode : 404;
return { statusCode };
};
export default Error;
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.