HttpClient 调用 ASP.NET Web API 方法,调用 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
}
网络接口:
[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();
那当然会被抓住。但是可查询的场景怎么样,我怎样才能抓住那些呢?