Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

エラーハンドリングの改善 #161

Open
nanasess opened this issue Sep 25, 2023 · 0 comments
Open

エラーハンドリングの改善 #161

nanasess opened this issue Sep 25, 2023 · 0 comments

Comments

@nanasess
Copy link
Collaborator

現在、 #149 の内容でエラーハンドリングをしているが、クライアント側でエラーの内容を検知することができない。
例えば、 NotFoundException と ShoppingException の違いを検知できない。
結果として、それぞれ同じエラー画面が表示されてしまう。

エラーの内容ごとに、別々のエラー画面を表示させるため、エラーハンドリングを改善したい

案1) Category の 分類を増やす

現在、 Category 列挙型には以下が定義されている

  • Global
  • FormValidation

当初、画面全体に対するエラーか、フォームの各属性に対するエラーかを判断するために作成したが、エラーの種類を分類する用途へ変更する。
例えば、以下のように NotFound を増やすことによって、 Global と NotFound を別のエラー画面にすることができる

  • Global
  • FormValidation
  • NotFound

メリット

  • シンプルである

デメリット

  • プラグイン等での拡張が難しそう
  • 柔軟性に欠ける

案2) data の結果として error を返す

以下の記事にあるように、 union 型を利用して、 data の結果として error を返す。

例えば、 Product の Query の結果は以下のような Schema となる

union ProductResult = Product | NotFound

クライアント側では上記の結果に応じて、商品詳細画面を表示するか、NotFound エラー画面を表示するか制御することができる。

メリット

  • 柔軟に定義できる

デメリット

  • 柔軟であるがゆえ、大規模になると煩雑になりそう
  • 実装が複雑になりそう
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant