1
我想捕獲來自OnlineIdAuthenticator :: AuthenticateUserAsync方法的異常,例如在沒有互聯網連接時發生。如何捕獲異步方法中發生的異常? (Windows應用商店應用程序,PPL)
我發現some info關於此主題,但它並沒有真正幫助我。
這裏是演示了,我嘗試處理錯誤的方式代碼:
auto auth = ref new OnlineIdAuthenticator();
auto request = ref new OnlineIdServiceTicketRequest ("wl.signin wl.basic wl.skydrive_update", "DELEGATION");
auto request_vec = ref new Vector <OnlineIdServiceTicketRequest ^>();
request_vec->Append (request);
create_task (auth->AuthenticateUserAsync (request_vec, CredentialPromptType::RetypeCredentials))
.then ([] (UserIdentity ^ident)
{
try
{
auto ticket = ident->Tickets->GetAt (0);
token = std::wstring (ticket->Value->Data());
}
catch (const concurrency::task_canceled &)
{
int _break_point_here = 0;
}
catch (const std::exception &)
{
int _break_point_here = 0;
}
catch (Platform::Exception ^ex)
{
int _break_point_here = 0;
}
});
但是從這些漁獲物沒有人當AuthenticateUserAsync方法失敗不起作用。 請提供任何幫助。從異步方法中捕獲異常的正確方法是什麼?
我知道這個代碼示例有點愚蠢,因爲try塊不包裝AuthenticateUserAsync調用。但我不明白該怎麼做。 – hellobody