AggregateException的状态码

本文关键字:状态 AggregateException | 更新日期: 2023-09-27 18:12:58

我正在使用xamarin表单的移动应用程序。我已经使用了web api的帖子和获取请求等。在某些情况下,抛出异常,我无法获得状态码。有什么方法可以得到错误的状态吗?状态码,如400,401,402等

AggregateException的状态码

如果发生多个错误,则抛出AggregateException。查看AggregateException的InnerExceptions属性,查看"真正的"错误。

我知道这是一个旧的帖子,但我有同样的问题,关于连接服务。

对我来说,解决方案是cast InnerException,如果它是类型SwaggerException和做的东西取决于StatusCode(如翻译这些代码到异常等)。

if (e.InnerException == null || typeof(SwaggerException) != e.InnerException.GetType())
    throw new Exception(e.Message);
var ie = (SwaggerException) e.InnerException;
switch (ie.StatusCode) {
    case 400:
        throw new ArgumentException(ie.Response);
    case 404:
        throw new KeyNotFoundException(ie.Response);
    default:
        throw new Exception(ie.Response);
}