调试时的UWP System.Runtime.Interop.COMException但Release上的System.Exception

时间:2016-08-06 13:39:29

标签: c# uwp winrt-httpclient

我面临以下问题

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

  • UWP应用 - >图
  • 针对Windows Universal和.NET Framework 4.6的PCL - >视图模型
  • 针对Windows Universal和.NET Framework 4.6的PCL - >模型

在View Project中,我有一个使用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.COMException那样抛出,而是System.Exception

有人知道为什么会这样吗?

0 个答案:

没有答案