私は多くのSMBや企業に展開されるエンタープライズプロジェクトに取り組んでいます。
このプロジェクトのサポートは苦労するため、エラーのコーディングパターン(HTTPステータスコードなど)を作成したいと思います。これにより、ヘルプデスクの担当者がドキュメントを参照し、できるだけ早く問題をトラブルシューティングできます。
これを行うためのベストプラクティスと推奨事項は何ですか?
これを行うためのヘルプは役に立ちます。
私は多くのSMBや企業に展開されるエンタープライズプロジェクトに取り組んでいます。
このプロジェクトのサポートは苦労するため、エラーのコーディングパターン(HTTPステータスコードなど)を作成したいと思います。これにより、ヘルプデスクの担当者がドキュメントを参照し、できるだけ早く問題をトラブルシューティングできます。
これを行うためのベストプラクティスと推奨事項は何ですか?
これを行うためのヘルプは役に立ちます。
回答:
エラーコードとエラー戻り値には違いがあります。エラーコードは、ユーザーとヘルプデスク用です。エラー戻り値は、コードでエラーが発生したことを示すコーディング手法です。
エラー戻り値を使用してエラーコードを実装することもできますが、それに対してアドバイスします。例外はエラーを報告する最新の方法であり、エラーコードを例外に含めない理由はありません。
これは私がどのように整理するかです(ポイント2-6は言語に依存しないことに注意してください):
ErrorCode
プロパティを持つカスタム例外タイプを使用します。メインループのキャッチは、通常の方法でこのフィールドを報告します(ログファイル/エラーポップアップ/エラー応答)。すべてのコードで同じ例外タイプを使用します。if (...) throw new FooException(1234, ".."); else throw new FooException(1235, "..");
コード内の簡単な行により、ヘルプデスクの時間を30分節約できます。そして、エラーコードの目的がヘルプデスクの生活を楽にすることであることを決して忘れないでください。
Doc1234
しばらくの間、メインアプリにを含めることができますIrS1234
。したがって、私のヘルプデスクの同僚は、ユーザーの支援を非常に迅速に行っています。
最初に、エラーが発生する可能性があり、ユーザーに見える領域を分離する必要があります。その後、それらを文書化できます。そのシンプル。
理論的には単純です。実際には、エラーはすべての場所で発生する可能性があり、エラーを報告することで、素晴らしいコードをロギング、例外のスローと処理、戻り値の受け渡しのモンスターに変えることができます。
その場合、2段階のアプローチをお勧めします。まず、ログを記録し、ロットとロットを記録します。
2つ目は、主要なコンポーネントとそのインターフェイスを決定し、これらのコンポーネントが検出できる主要なエラーケースを定義することです。これらのエラーの1つ(エラーの内部処理方法はユーザー次第)で、よりわかりやすい方法でログインできます-例外またはエラーコードはここでは違いはありません)。ユーザーは通常、エラーを確認し、ログを参照して詳細情報を確認します。
同じアプローチがWebサーバーとhttpエラーコードの例に使用されます。ユーザーが404を確認し、サポートに報告すると、ログで何が起こっているのか、どのページにアクセスしたのか、いつ閲覧したのかなど、詳細な情報を収集します、DB、ネットワーク、またはアプリケーション内にあります。
説明的な名前と明確なメッセージを含むカスタム例外に行き、それらをスローします。エラーコードを渡したり解釈したりするためのサポートを組み込むよりも、言語の既存の例外インフラストラクチャを使用する方がはるかに簡単です。