RAISERROR
データベース側の致命的なエラーをアプリケーションに通知するために使用する3〜4個のストアドプロシージャ(必要に応じて変更できます)があります。これらのストアドプロシージャの一部は、C#側から、を使用して実行されますがExecuteNonQuery
、その他は。を使用して実行されExecuteReader
ます。現時点では、これらのコマンドをtry { ... } catch (SqlException ThisSqlException) { ... }
ブロックでラップしていますが、問題は、この例外が、個別に処理する必要がある少なくとも2つのシナリオでスローされることです。
1)接続自体のエラー、またはパラメータの障害やタイプの不一致によるエラー。と
RAISERROR
2)明示的に使用するたびに発生するエラー。
RAISERROR
これはWCFアプリケーションであるため、例外の性質(コマンドによるものかどうかに関係なく)に基づいて、クライアントアプリケーションにさまざまなフィードバックを返す必要があります。では、どうすれば両方の状況を区別できますか?