2

私は、特に、話している相手があなたと同じプロトコルと設定を使用していることを確認するために、最初に少しハンドシェイクを処理するソケットラッパーライブラリを持っています。標準的な方法で独自の例外クラスを作成しました。

 private class NSocketProtocolException : System.Exception
    {
        public NSocketProtocolException(string message) : base(message) { }
    }

クライアントとサーバーが同じバージョンのプロトコルを使用していない場合、一方が暗号化を使用したいが他方が使用していない場合など、さまざまな理由でこの例外をスローします。現在、私だけです。このライブラリを使用している人ですが、将来的に他の人が使用できるように、十分に親しみやすいように設計しようとしていました。他のプログラマーが例外がスローされるさまざまなインスタンスでより価値のあることを実行できるようにするには、これらに対応する独自のカスタムエラーコードを用意する必要がありますか?

エラーコードを編集する方法はよくわかりませんが、もっと重要なのは、別の種類の例外が使用するのと同じエラーコードを使用したくないということです。何かご意見は?

4

2 に答える 2

3

エラーコードは必要ありません。例外メッセージは、例外に関する詳細の場所です。エラーコードを使用する場合、そのエラーコードをどこかに文書化する必要がありますよね? そのため、その説明は例外メッセージに含めることができます。コードのユーザーは、タイプ別に例外をキャッチできます。

例外またはコンテキストに関するデータを保存する必要がある場合は、Exception.Dataを使用します。たとえば、データに例外のタイムスタンプを入れるか、Web アプリケーションで現在のリクエスト URL を Data に入れることができます。

また、カスタム例外に関するこのブログ投稿を必ずお読みください。本当に必要ですか?

于 2012-04-29T23:09:24.993 に答える
1

例外を公開する (他のコンストラクターを追加する) だけで、それを使用する人が例外を処理できないダウンストリーム アプリケーションでエラー コードの必要性を感じた場合は、独自の例外を追加できます。

于 2012-04-29T22:16:26.730 に答える