、ありがとうございました。この質問に対する回答は、のいずれかであるになる可能性があるため、私たちはあなたに答えを与えることはできません。 何もない;その場所に何も置く必要はありませんが、そのような例外を呑み込むのは通常は貧弱です。
ポイントはあなたのアプリケーションにの完全にに依存します。ログエントリを作成するか、エラーをクリーンアップしてユーザにもっと良いものを表示したり、そこに他のコードを入れてリカバリまたは再試行したり、あるいは上記のすべてを行うこともできます。あなたが望むものなら、なんでも。しかし、私たちはあなたがしたいことを知ることができません。それはあなたとあなたの設計仕様に依存します。
また、あなたは条件付きの例外を使用してこのコードを単純化することができます
Try
Dim records As DataRecordCollection = Sql Insert SP call
Catch sqlEx As SqlException When sqlEx.Number = 547
// Put whatever you want here
End Try
最後に、私の経験では、最良のオプションは完全にこのレベルでtry/catchブロックをスキップ通常にあります。
適切に設計されたアプリケーションを使用している場合、データベースアクセスは、UIまたはビジネスレイヤとは別の独自のクラス、アセンブリ、名前空間、またはそれらの組み合わせに抽象化されます。私の経験では、データベースコードでこれらの例外を処理することは、例外がより高いレベルの抽象化にバブルアップできるようにするほど役に立ちません。あなたはそこでそれに対処する方がよいでしょう。それはTry/Catchが何をしているかのようなものです。例外はその種の例外に最も適切なレベルで捕らえることができます。
あなたが何をしたいか分からないときは特にそうです。例外を処理する予定がない場合は、処理しないでください。 Try/Catchブロックを捨てて、他の誰かがより良い戦略を持っているかもしれないところで、例外のバブルをより高いレベルにしましょう。
SQLException番号547が発生した場合はどうしますか? – Blackwood
オプションが何であるかわからないのですか?私が推測するプログラムをクラッシュさせないために。 – PixelPaul
回復可能な場合は回復します。それは致命的なメッセージを送信し、正常に終了します –