我有一个使用Azure Mobile作为其后端的原生WinRT应用程序。只要能够达到服务,它就能很好地工作。如果互联网断开连接,任何查询都会在没有任何警告的情况下使应用程序崩溃,或者在异步调用中发生崩溃时会发现异常。这是我发现的重现问题的最小代码:
azure::mobile::client c(L"https://MYSERVICE.azure-mobile.net/", L"MYKEY");
azure::mobile::table table(c, L"MYTABLE");
table.read(); // Adding any .then continuation also leads to exception
这是例外:
0x018DCFF6(msvcr120d_app.dll)中的未处理异常:将无效参数传递给认为无效参数致命的函数。
如果我在进行任何查询之前应该使用azure mobile API检测连接,我无法找到任何方法。我不认为简单地检查互联网连接是一个充分的答案,我也认为在进行任何查询之前手动ping服务是一种不必要的迟钝方式来检测错误。如果出现错误,似乎查询结果应该返回空,但代码永远不会那么远。我错过了什么吗?
更新:如果我成功连接到该服务但该表尚未创建,则该应用似乎也会崩溃。同样,没有能力使用我能找到的API来检测这种情况。