Error Boundary is a declarative way to handle errors in a tree structure.
function A() {console.log(1);return <ThrowsOnRender />;}function ThrowsOnRender() {console.log(2);throw "error";return null;}class ErrorBoundary extends React.Component {state = {hasError: false,};static getDerivedStateFromError() {console.log(3);return {hasError: true,};}render() {return this.state.hasError ? <p>something wrong</p> : this.props.children;}}function App() {return (<ErrorBoundary><A /></ErrorBoundary>);}const root = createRoot(document.querySelector("#root"));root.render(<App />);
function A() {console.log(1);return <ThrowsOnRender />;}function ThrowsOnRender() {console.log(2);throw "error";return null;}class ErrorBoundary extends React.Component {state = {hasError: false,};static getDerivedStateFromError() {console.log(3);return {hasError: true,};}render() {return this.state.hasError ? <p>something wrong</p> : this.props.children;}}function App() {return (<ErrorBoundary><A /></ErrorBoundary>);}const root = createRoot(document.querySelector("#root"));root.render(<App />);
click on the console.log lines to input your answer.