「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > クライアント中心のエラー処理

クライアント中心のエラー処理

2024 年 11 月 9 日に公開
ブラウズ:612

Client-Centered Error Handling

エラーの理解と処理

エラーを効果的に処理するには、発生する可能性のあるエラーの種類を理解することが不可欠です。まずは、発生する可能性のあるエラーを分類することから始めましょう。

Web クライアント環境におけるエラーの種類

ネットワークエラー

  • 接続の問題: サーバーへの接続の確立に関する問題。
  • タイムアウト: リクエストが応答を受け取るまでに時間がかかりすぎます。
  • DNS エラー: ドメイン名解決の問題。
  • HTTP エラー: 404 Not Found、500 Internal Server Error などのエラー

サーバーAPIエラー

  • 無効な応答: サーバーからの予期しないデータまたは不正なデータ。
  • 認証エラー: ユーザー認証または認可に関する問題。
  • レート制限: API 使用制限の超過による制限。

ユーザーのブラウザ環境エラー

  • ブラウザの互換性: ブラウザによる特定の機能の処理方法の違いに起因する問題。
  • JavaScript エラー: クライアント側の JavaScript コードのエラー。
  • リソース読み込みエラー: 画像、スクリプト、スタイルシートなどのリソースの読み込み中に問題が発生しました。

その他のエラー

  • クライアント側エラー: ユーザーのデバイスまたはオペレーティング システムに関連するエラー。
  • UI/UX エラー: リンク切れやレイアウトの誤りなど、ユーザー インターフェイスまたはユーザー エクスペリエンスに関する問題。

さまざまな種類のエラーが発生する可能性があります。ただし、これらのエラーは通常、

の 2 つのカテゴリに分類できます。
  1. 予期されるエラー: 発生と性質が事前にわかっているエラー。
  2. 予期しないエラー: 発生や性質が事前に不明なエラー。

これまで説明してきたエラーをこれらの分類に分類してみましょう。

エラーは予測できるかどうか?

予期されるエラー

明確なステータス コードを持つサーバー API から受信したエラーは、事前に予測して対処できるため、予想されるエラーと見なすことができます。

例えば、不正アクセス(401)や禁止アクセス(403)などのエラーに対して、状況に応じて適切に対処できます。また、エラーに応答してアプリケーション ロジックを管理するために、ステータス コードごとにさらに詳細なエラー コードを定義することも一般的です。これらは予期されるエラーと呼ばれます。

予期しないエラー

一方、500 範囲のサーバー エラーは、予測不可能であるため、予期しないエラーとして分類されます。何らかの理由でサーバーが応答できない状況はいつでも発生する可能性があります。また、ユーザーのネットワーク環境やブラウザ環境によって発生する可能性のあるエラーは予測が困難なため、予期せぬエラーとして分類されます。

ユーザーとエラー

エラーは、環境だけでなく、ユーザーとの対話に基づいて分類することもできます。エラーを分類する 1 つの方法は、ユーザーがエラーに対して何かできるかどうかを検討することです。この分類の基準は次のとおりです:

  1. ユーザーが理解して解決できるエラー (ユーザーがアプリケーションを使い続けるのに役立つエラー)。
  2. ユーザーが解決できないエラー (ユーザーに何の支援も提供しないエラー)。

解決可能なエラー

たとえば、認証または認可エラーがこのカテゴリに分類されます。ログインしていないユーザーは、401 ステータス エラーが発生する可能性があります。この場合、ログイン画面を提供したり、ログインが必要であることを示すメッセージを表示したりできます。

ユーザーが特定の画面にアクセスする権限を持っていない場合は、管理者にアクセスをリクエストするようにユーザーを誘導できます。

ユーザーの放棄を歓迎する製品開発者はいません。エラーが発生したユーザーに状況を克服するためのガイダンスを提供することが重要です。たとえば、一時的なネットワーク エラーに対する更新ボタンや、存在しないページにアクセスしたときに前の画面に戻るボタンを提供します。

解決できないエラー

しかし、エラー状況をユーザーに通知してもまったく役に立たない場合もあります。たとえば、低スペックのデバイスやブラウザでは動作しないコンポーネントがコードに含まれている場合、ユーザーはそれに対して何もすることができません。 (おそらく別のブラウザの使用を示唆するメッセージ?)

ケース 1 とケース 2 の両方に、メッセージの提供が含まれます。違いは、ケース 1 には、ユーザーに手順の実行を促すアクションまたはガイダンスが含まれていることです。

発生したエラーはユーザーが自分で解決できるものですか?

エラーの処理方法

では、発生したエラーにはどう対処すればよいのでしょうか?エラーが発生した場合、アプリケーションはユーザーにどのようなインターフェイスを提供する必要がありますか?さまざまな種類のエラーにその特性に基づいて対処する方法を見てみましょう。

予測不可能だが解決可能なエラー

典型的な例はネットワーク エラーです。これらは、ユーザーのネットワーク環境に応じて、いつでも発生する可能性があります。最も簡単な解決策は、これが「一時的なエラー」であることをユーザーに通知し、前のアクションを再試行するためのガイダンスを提供することです。

誤差範囲

これらのエラーの場合、アプリケーション全体に悪影響が及ばないようにすることが重要です。たとえば、アプリケーションが 1 つの画面で 10 個の API を呼び出す場合、1 つの API が失敗しても、アプリケーション全体でエラー メッセージがトリガーされず、すべての呼び出しを再試行する必要があります。

代わりに、障害が発生した領域のみを回復することに重点を置きます。

予測不可能で解決できないエラー

これらは予期することが困難なエラーであり、簡単な解決策はありません。このようなエラーは開発中に最小限に抑える必要があり、エラーが発生した場合の処理​​計画を立てておく必要があります。ユーザーはこれらのエラーを自分で解決できないため、カスタマー サポートに簡単に連絡できる方法を提供することが必要になる場合があります。

監視

開発者の制御が及ばないエラーは、Sentry などのツールを使用して監視する必要があります。ユーザーがこれらのエラーに遭遇しないようにするには、これらのエラーを修正する必要があります。さらに、そのようなエラーが発生した場合にユーザーがアプリケーションに戻るメカニズムがあることを確認してください。

予測可能だが解決できないエラー

これらは既知のエラーであり、ユーザーが利用できる解決策はありません。ユーザーが自分で問題を解決できない場合は、エラー処理の機会を逃していることを意味します。ユーザーが意図的に異常なアクションを実行した場合、それはセキュリティ上の脆弱性の兆候である可能性があります。

セキュリティ関連のエラー

これらのエラーは、アプリケーションを悪用する悪意がある場合に発生します。これらは通常、セキュリティの脆弱性に起因するものであり、開発中に防止する必要があります。 CORS や XSS などの基本的なセキュリティの問題に対処し、セキュリティ チームと協力して安全なアプリケーションを構築することが重要です。

予測可能かつ解決可能なエラー

これらのエラーは通常、開発者がすでに認識しているビジネス ロジックの一部です:

  • 401 不正エラー: ログインが必要です。
  • 404 見つからないエラー: 間違ったページにアクセスしています。
  • その他のビジネス ロジック エラー: アプリケーションのロジックによって定義されます。

このような場合は、アプリケーション内で適切なガイダンスを提供するか、ユーザーを誘導するための別のページを作成します。

指導の重要性

ユーザーは、エラー メッセージが表示された後に次に何をすべきかを明確に理解する必要があります。これにより、エラーの頻度が減り、ユーザーの放棄を防ぐことができます。したがって、エラー メッセージに加えて、行動喚起を含めることが重要です。

たとえば、フィールド検証エラーがある場合は、エラーが発生したフィールドに注目します。ユーザーが存在しないページに移動した場合は、前の画面に戻るボタンを提供します。

結論

Client-Centered Error Handling

エラー処理について調べました。エラー監視ツールや限られた範囲でエラーをキャッチできるReactのErrorBoundaryなど、さまざまなツールやテクノロジーを活用して効率的にエラーを管理しましょう。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/jaeyeophan/client-centered-user-Exception-handling-23a1?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3