業務で詰まったので忘備録で残させていただきます。
開発中のアプリケーションではEntity Frameworkを採用しています。
クエリでの問い合わせ(データの検索)時、およびデータの更新時の最中に
DB切断が起こってしまったとき、
エラーの内容が「SQL Serverの接続失敗」であることを明示したい。
EntityExceptionが発生することは分かっているのに、なかなか例外がキャッチできない。
調べていくと、
EntityExceptionには下記2種類存在することが判明。
・System.Data 名前空間の Entity Exception クラス
・System.Data.Entity.Core 名前空間の Entity Exception クラス
最初前者でキャッチしようとするも通り過ぎてしまい、後者で対応できるのだと見つけるまで時間を要しました。
ちなみに前者後者の特徴は今だつかめていません。調べてみて掴めたら追記します。
処理としては、上記エラーをキャッチし、
ダイアログ表示&ログ出力としました。
ログはStackTraceのみだと発生した場所やメソッド名は分かりますが内容が分かりにくいため、
InnerExceptionも出力するようにしました。
以上