サーバーとのtcpソケット通信をカプセル化するクラスがあります。サーバーに送信されるコマンドメッセージごとに、サーバーは常に応答コード(OK、失敗)を含む応答メッセージを送り返します。私のクラスを使用すると、各コマンドはsyncまたはasyncのいずれかで実行できます。
発生する可能性のある例外には、基本的に2つのタイプがあります。切断またはその他の回復不能なエラーによって引き起こされる「障害」と、「バッファがいっぱいです」などの予期しない例外です。障害が発生した場合、接続が再確立されるまで、コマンドを続行したり、再試行したりすることはできません。応答が失敗した場合、または例外が発生した場合でも、コマンドを再試行できます...
したがって、現在、私のsyncコマンドメソッドは、OK、Fail、Faultの値を持つことができる列挙型を返します。例外が発生した場合は、(syncコマンドで)呼び出し元のスレッドに発生します。非同期コマンドの場合、Resultプロパティの列挙値に追加の値(OK、Fail、Fault、またはException)を含めることができ、コールバックはコマンドオブジェクトのExceptionプロパティを介して実際の例外オブジェクトにアクセスできます。
この戦略についてどう思いますか?同期コマンドに対して例外をまったく発生させず、内部で例外をログに記録し、代わりに4番目の列挙値を返すようにしたいと思います。とにかくどのような場合でも例外を実際に処理するのはそれだけだからです...または、使用しないでください結果コードはすべて、障害も含めてすべての場合に例外を発生させますか?
ありがとう。