通常、System.Exceptionを使用するのに悩まされましたが、これが私の唯一の選択肢であるかどうかは疑問です。このシチュエーションではSystem.Exceptionを使用するのが適切でしょうか?
私は、このシナリオに
- ユーザー要求タスクを持っています。
- dbからのすべての正常なタスク行が取得された場合
- タスクの更新がコミットされ、列がロックされていると更新されます。
- 日付を現地時間に変換するために、このタスクにタイムゾーンのものが適用されます。
- タスクがユーザーに表示されます。
したがって、手順1〜4の間に何か問題が発生しても、ロックされていないため、タスクは良好です。ただし、手順5で失敗し、ユーザーにタスクを表示できない場合、ファイルはロックされ、スケジュールされたジョブが実行されるまでロックされ、ロックされたファイルがロックされないように強制されます。
一時的に失敗した可能性があり、次にファイルを要求したときに再び機能する可能性があるので、ちょっと理想的ではありません。しかし、今では、自動的にロックが解除されるまで(他のすべての加入者と同じに)X分待つ必要があります。
私の最初の考えは最終的にはステートメントを使用していましたが、これは何に関係なく常に実行されるので、ファイルが今ロックされていると言うことを理解できませんでした。
ファイルがロックされていますが、何かが間違ってロックを解除しました。例外が発生したときにのみ実行される文がC#にあったといいでしょう。
私の唯一の考えは例外があります。もし何か起これば、そこではロックが解除されます。唯一のケースは、データベースがダウンしている場合にロックを解除しようとするポイントがSQl例外である場合ではありません。
もちろん、私はelmahを使用してエラーをログに記録し、より良い例外タイプをゆっくりと追加します。
他にも優れたアイデアはありますか?
例外を使用するのはいつ頃ですか? –
例外を持つために例外が発生するのは嫌われていますが、全体的ではありません。 – Marc
@ Jean-Bernard Pellerin - 例外を使用することに惑わされませんでしたが、すべてに "例外" – chobo2