3

我面临以下问题

我的解决方案是像这样使用 MVVM 设置的。

  • UWP 应用 -> 查看
  • 针对 Windows Universal 和 .NET Framework 4.6 -> ViewModel 的 PCL
  • 面向 Windows Universal 和 .NET Framework 4.6 的 PCL -> 模型

在查看项目中,我有一项使用Windows.Web.Http.HttpClient. 该服务被注入到几个 ViewModel 中。

在视图模型中,我有一个这样的 try catch 块。

try
{

    await webClientService.MakeACallAsync();

}
catch (System.Runtime.InteropServices.COMException e)
{
    //web exceptions such as 404, 401, 500 etc
    // code handling exceptions.
}

MakeACallAsync 就是这个函数,但问题不仅限于这个调用,它也发生在其他类似的调用中。

public async Task<string> MakeACallAsync(string username, string password)
        {                
            var usernamepassword = $"{username}:{password}";
            var bytes = Encoding.UTF8.GetBytes(usernamepassword);
            var base64 = Convert.ToBase64String(bytes);
            httpClient.DefaultRequestHeaders.Authorization = new HttpCredentialsHeaderValue("Basic", base64);
            return await httpClient.GetStringAsync( a uri here );
        }

现在,如果服务由于 404、500 等响应而引发任何异常,我会捕获这些异常并处理它们。

这在 Debug 中运行良好,但在 Release 中,异常不是System.Runtime.InteropServices.COMExceptionSystem.Exception.

有谁知道为什么会这样??

4

0 回答 0