1

更新: ここでのエラー コードは、関数の戻り値ではありません。実際、エラー処理に例外またはエラー コードを使用することについては議論していません。エラーを整理するためにどのパターンを使用するかを理解しようとしています。私が実際に行っているのは、Windows のブルー スクリーンに表示されるエラー コードのようなものです。非常に古い時代に戻ると、Windows がクラッシュすると、ブルー スクリーンにエラー コードが表示され、そのコードを使用して、MS のドキュメントを参照することで何が起こっているかを把握できます。私のシステムには、お互いを知らないかもしれないさまざまな人々によって提供された多くのプラグインがあります。エラーコードを定義することを許可した場合。ほとんどの場合、2 つのプラグインのエラー コードが競合する可能性があります。

================================================== ==============================================

プラグインが独自のエラー コードを定義できる拡張可能なエラー コード システムを設計したいと考えています。基本的な考え方は次のとおりです。

  1. システムには一連の予約済みエラー コードがあります
  2. プラグインは、システムで使用されていない範囲を選択し、その範囲でエラー コードを作成できます。ただし、問題はプラグインがお互いを認識していないことです (プラグインは異なる人によって作成され、ユーザーの好みによってシステムにインストールされる可能性があるため)。そのため、エラー コードの範囲が競合する可能性があります。

この要件に適切な方法はありますか? 私はよくグーグルで検索しますが、驚いたことに、製品ソフトウェアでのエラー コードの設計について説明している記事はほとんどありません。ほとんどの投稿は、例外とエラー コードに焦点を当てています。

そして、ユーザーが何が起こっているのかを理解できるように、製品にエ​​ラーを表示するための良いパターンはありますか? 私の基本的なアイデアは、エラー コード、説明、詳細を含むエラーをユーザーに表示することです。ユーザーがエラー コードをクリックすると、適切な解決策が示されます。

4

2 に答える 2

0

アプリがスローするすべての例外について、それをデータベースに挿入します。エラー コードはそのレコードの ID であり、それがユーザーに表示されます。明らかに、同じ例外は同じ ID を取得します。必要なプラグイン情報をDBに格納

于 2013-04-25T20:59:53.993 に答える
0

構築しているプラ​​グイン システムが何をするかわからない...

この情報をホスト アプリケーションに提供するのは、プラグインの責任ではないでしょうか? プラグインで操作を実行した結果にこれらの項目を含めてみませんか? このように、ホスト アプリケーションはプラグイン固有の実装の詳細を気にせず、何かが OK かどうかだけを気にしません...

const int OP_SUCCESS = 0;

// structure returned for plugin ops
struct OperationResponse {
    int code; // any other value than OP_SUCCESS is plugin-defined
    string message; // operation optional message, even if success
    // other fields
};

したがって、プラグインへのすべての呼び出しは次のことを行います。

OperationResponse r = plugin.DoOperation();

if (r.code != OP_SUCCESS) {
    // do something with r.message and other fields
}
于 2013-04-25T19:01:40.953 に答える