Ремонт: нулевое исключение - PullRequest
0 голосов
/ 10 октября 2019

Я использую стандартную реализацию библиотеки 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 };
        }
    }

...