try { const data = await fetchSomething(); // 正常系レスポンスの処理 } catch (err) { if (isFetchError(err)) { // 異常系レスポンスの処理 } } 理由はつぎのとおりです。 データ取得ライブラリ風に宣言的に書きたいから データ取得に関係ない例外も catch してしまうから HttpError は開発者にとって想定範囲内だから HttpError の集計に不便だから データ取得ライブラリ風に宣言的に書きたいから 要約すると、データ取得時は常にこの様に書きたい、という話です。useSWR・useQuery や apollo/client でお馴染みのインターフェイスです。 const { data, err, status } = await fetchSomething(); if (data) //