Я использую стандартную реализацию библиотеки Refit.
Вчера я потратил несколько часов, пытаясь выяснить, почему вызов не удался в блоке перехвата, где исключение было нулевым. С тех пор я понял это, создав репро: Ошибка преобразования значения {null} в тип 'System.DateTime' во входном файле json.
Теперь мне интересно, что могло бы предотвратить возникновение этого? Стек вызовов - это весь внешний код с точки зрения самого вызова. Есть идеи?
public static async Task<BaseResponse> GetWidgetData(BaseRequest request)
{
try
{
var api = RestService.For<IWidgetService>(new HttpClient(new AuthenticatedHttpClientHandler(GetToken)) { BaseAddress = new Uri(BaseUrl) });
var response = await GetWidgetData(request);
return new BaseResponse { HttpStatusCode = HttpStatusCode.OK, Widget = response.WidgetData };
}
catch (ApiException ex)
{
return new BaseResponse { HttpStatusCode = ex.StatusCode };
}
catch (Exception ex)
{
//GetWidgetData Call fails here where ex is null
return new BaseResponse { HttpStatusCode = HttpStatusCode.InternalServerError };
}
}