- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- JavaScript/React/useEffect/useEffectとtry-catchの例外処理 へ行く。
- 1 (2023-02-27 (月) 13:20:46)
useEffectとtry-catchの例外処理
try-catchの中でuseEffectを使う
const App = () => { try { useEffect(() => { throw new Error('My Error'); }); } catch (e) { console.log('DEBUG: ' + e.message); } return <div>My App</div>; };
- 上の例ではcatchの中は実行されない
- なぜなら、useEffectの中の処理はコンポーネントがレンダーされた後に実行されるから
- つまり、Appコンポーネントがマウント(レンダー)されると、tryの中のuseEffectは実行されるが中の処理が実行されることなく(例外がthrowされることなく)、returnの行まで処理が進み、My Appがレンダーされる
- レンダーされた後に、useEffectの中が実行されて例外がthrowされるが、この例外はcatchされない