[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

311users がブックマーク コメント 23

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

データ取得で try...catch しない理由

311 users zenn.dev/takepepe

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント23

  • 注目コメント
  • 新着コメント
poponponpon
APIだけ別会社が開発であんまり口出せない、、とかになると面倒くさいからとりあえずcatchしちゃっておくことはある

その他
miki3k
通常発生するエラーは例外じゃないって考え方がしっくりくる

その他
UhoNiceGuy
確かに致命的ではないエラーならtry...catchは大仰だね。モナドみたいに組み立てたくなる

その他
ssids
HTTP GET ができないのは「異常(例外)ではない」って感じか。例えばブラウザ開いて読まなくて再読み込み押すなんて普通にスマホ使ってれば一日に一回ぐらいあるよね

その他
rryu
データ取得というかHTTPの200以外のレスポンスを例外で返さないという話。この手のライブラリをHTTPのステータスコードも使うREST APIで使うと地獄みが生じる。

その他
maruware
rejectが例外になった弊害を感じる

その他
ryosuke-fujii
const { data, err, status } = await fetchSomething(); こういうふうに書きたいねという記事。

その他
da-yoshi
Try型がある言語の場合はそれを使ったりしてResponseの結果をまとめておくことが多いかな

その他
eiki_okuma
ゲーム系だけどそもそもAPIがよくわからん例外を投げる時点で設計間違ってるので使わない

その他
hylom
個人的にはネットワークエラーは例外投げて、200以外のHTTPエラーコードは普通にresolveするべきだと思う(ブラウザのfetch APIやNodeのhttp.requestはそうなってる)、なのでtry〜catchはネットワークエラー対応のために書く

その他
nilab
「データ取得ライブラリ風に宣言的に書きたいから」「データ取得に関係ない例外も catch してしまうから」「HttpError の集計に不便だから」

その他
cubed-l
確かにレスポンスコードは並列で使いたい

その他
rryu
rryu データ取得というかHTTPの200以外のレスポンスを例外で返さないという話。この手のライブラリをHTTPのステータスコードも使うREST APIで使うと地獄みが生じる。

2022年04月28日 リンク

その他
tettekete37564
コードの浅い所、たとえばMVCのVやCでtry catchさせる思想のlibやFWや言語は本当にセンス無いと思う。ハード依存は仕方ないけどFWが依存してるlibの例外とか知らんがな。libのバグが原因のケースとかカバーしょうがない

その他
quality1
そうなの?わからんわ。

その他
UhoNiceGuy
UhoNiceGuy 確かに致命的ではないエラーならtry...catchは大仰だね。モナドみたいに組み立てたくなる

2022年04月28日 リンク

その他
ssids
ssids HTTP GET ができないのは「異常(例外)ではない」って感じか。例えばブラウザ開いて読まなくて再読み込み押すなんて普通にスマホ使ってれば一日に一回ぐらいあるよね

2022年04月28日 リンク

その他
pwatermark
異常系含めて全部ハンドリングしてくれるミドルウェアであれば要らないんだけどね そうじゃないことも多いし

その他
kako-jun
読ませてもらったよ......2、3疑問が残るが、刺激のある提案だ......と思った後、冬月じゃんって思った

その他
door-s-dev
あまりよく考えた記憶がない。適当になってそうなので後で確認する

その他
yarumato
"HttpError は開発者にとって想定範囲内だから。HttpError の集計(取得に全て成功/一部失敗)に不便だから。データ取得に関係ない例外も catch するから。データ取得ライブラリ風に宣言的に書きたいから"

その他
maruware
maruware rejectが例外になった弊害を感じる

2022年04月28日 リンク

その他
poponponpon
poponponpon APIだけ別会社が開発であんまり口出せない、、とかになると面倒くさいからとりあえずcatchしちゃっておくことはある

2022年04月28日 リンク

その他
strawberryhunter
fetch()が例外を投げる理由が限定的なのでfetchSomething()の中で例外を投げるように書かなければcatchする理由もないのでは。

その他
ryan_aircloset
わかるー。try catchするなら想定される例外はカスタムエラーであらかじめ定義しておいて、instanceOfで判定書いてあげると 予期したエラーか判断できるのでよき。ほんとは言語標準で提供してほしいけど。

その他
shingo-sasaki-0529
HTTPのエラーとその他のエラーがごっちゃになるのわかる。axios もう一弾ラップして、宣言的に書けるようになるとカッコいいな。

その他
miki3k
miki3k 通常発生するエラーは例外じゃないって考え方がしっくりくる

2022年04月28日 リンク

その他
mayumayu_nimolove
これが最新版かな

その他
remonoil
fetchSomethingの中で必要なもの(リトライ、ロジック上のエラー等)だけやる派

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「データ取得で try....」が注目されています。

気持ちをシェアしよう

ツイートする

データ取得で try...catch しない理由

try { const data = await fetchSomething(); // 正常系レスポンスの処理 } catch (err) { if (isAxiosE... try { const data = await fetchSomething(); // 正常系レスポンスの処理 } catch (err) { if (isAxiosError(err)) { // 異常系レスポンスの処理 } } 動機はつぎの 3 つです。 データ取得も宣言的に書きたいから データ取得に関係ない例外も catch してしまうから HttpError の集計に不便だから データ取得も宣言的に書きたいから 要約すると、データ取得時は常にこのように書きたい、という話です。useSWR・useQuery や apollo/client でお馴染みのインターフェイスです。 const { data, err, status } = await fetchSomething(); if (data) // 正常系レスポンスの処理 if (err) // 異常系レスポンスの処理

ブックマークしたユーザー

  • noguful2023年12月25日 noguful
  • takaesu2023年12月21日 takaesu
  • mjclab2023年10月02日 mjclab
  • ryosuke-fujii2023年05月18日 ryosuke-fujii
  • techtech05212023年02月14日 techtech0521
  • chibahiro2023年01月24日 chibahiro
  • syukit2022年09月27日 syukit
  • zakiy2022年09月26日 zakiy
  • nobyu2022年09月25日 nobyu
  • onigra2022年05月16日 onigra
  • kjkj_ongr2022年05月11日 kjkj_ongr
  • J1382022年05月09日 J138
  • marutaku01312022年05月05日 marutaku0131
  • rinrinbell2022年05月02日 rinrinbell
  • ohchang2022年05月02日 ohchang
  • k_hamada_19882022年05月01日 k_hamada_1988
  • enokawaa2022年04月29日 enokawaa
  • zaki10102022年04月29日 zaki1010
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /