2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Entity Framework DB切断時にクエリが失敗した際にキャッチするExceptionの種類

Posted at

業務で詰まったので忘備録で残させていただきます。

開発中のアプリケーションではEntity Frameworkを採用しています。

クエリでの問い合わせ(データの検索)時、およびデータの更新時の最中に
DB切断が起こってしまったとき、
エラーの内容が「SQL Serverの接続失敗」であることを明示したい。

EntityExceptionが発生することは分かっているのに、なかなか例外がキャッチできない。

調べていくと、
EntityExceptionには下記2種類存在することが判明。

System.Data 名前空間の Entity Exception クラス
System.Data.Entity.Core 名前空間の Entity Exception クラス

最初前者でキャッチしようとするも通り過ぎてしまい、後者で対応できるのだと見つけるまで時間を要しました。
ちなみに前者後者の特徴は今だつかめていません。調べてみて掴めたら追記します。

処理としては、上記エラーをキャッチし、
ダイアログ表示&ログ出力としました。

ログはStackTraceのみだと発生した場所やメソッド名は分かりますが内容が分かりにくいため、
InnerExceptionも出力するようにしました。

以上

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?