正解はError Boundaryです。クラスコンポーネントでcomponentDidCatchとgetDerivedStateFromErrorを実装するか、react-error-boundaryライブラリを使用します。関数コンポーネントでは直接実装できないため、ライブラリを使用するかクラスコンポーネントで実装します。