Error Handling in React 19
Robust error handling improves user experience and app reliability. React 19 provides several mechanisms for managing errors in components and hooks.
Error Boundaries
- Use error boundaries to catch errors in child components and display fallback UI.
- Implement with class components or use third-party libraries for function components.
import { ErrorBoundary } from 'react-error-boundary';
function ErrorFallback({ error }) {
return <div role="alert">Something went wrong: {error.message}</div>;
}
<ErrorBoundary FallbackComponent={ErrorFallback}>
<MyComponent />
</ErrorBoundary>
Global Error Handling
- Use global error listeners for uncaught errors and promise rejections.
- Log errors to monitoring services (e.g., Sentry, LogRocket).
Async Error Management
- Always handle errors in async functions and API calls.
- Use try/catch blocks in hooks and components.
try {
await fetchData();
} catch (error) {
// Handle error, show message
}
User Feedback
- Show clear, actionable error messages to users.
- Avoid exposing sensitive error details.
- Use toast notifications or modals for error alerts.
Logging
- Log errors to external services for monitoring and debugging.
- Include error context (component, props, user actions).