HttpClientがASP.NETWebAPIメソッドを呼び出し、EFリポジトリを呼び出すシナリオ。SQL例外をキャッチするのに問題があります。
クライアント:
try
{
var client = new HttpClient();
var httpRequestMessage = new HttpRequestMessage();
var response = await client.SendAsync(httpRequestmessage);
response.EnsureSuccessStatusCode();
}
catch (Exception ex)
{
// internal error 500 here
}
Web API:
[HttpGet]
public IQueryable<Data> GetData()
{
try
{
return repository.Data();
}
catch (Exception ex)
{
// Nothing here
}
}
リポジトリ:
public IQueryable<Data> GetData()
{
try
{
return dbContext.Data.Where(d=>d.Id == 1)
}
catch (Exception ex)
{
// nothing here
}
}
SQL Serverの例外(接続の問題など)を処理するにはどうすればよいですか?APIレイヤーもリポジトリレイヤーもそれらをキャッチしません。クエリ可能オブジェクトをリポジトリ内の配列に変換する場合:
var arr = dbContext.Data.Where(d => d.Id == 1).ToArray();
もちろんそれは捕まるでしょう。しかし、クエリ可能なシナリオはどうですか、どうすればそれらをキャッチできますか?