HttpClient調用ASP.NET Web API方法調用EF存儲庫的方案。 我在捕獲SQL異常時遇到了問題。如何處理IQueryable <>方法中的後端異常?
客戶:
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服務器例外(如連接問題)? API層和存儲庫層都不會捕獲它們。 如果我想轉成可查詢資料庫中的數組:
var arr = dbContext.Data.Where(d => d.Id == 1).ToArray();
這當然會被抓到。但是這個可查詢的情況怎麼樣,我怎麼能抓住這些?
我假設你在客戶端得到一個'WebException'。從「WebException」獲取響應並分析獲得OData XML錯誤可能是可能的。 –