- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 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されない