Unity Parse SDK登录失败例外404

时间:2014-06-27 00:48:50

标签: exception-handling sdk unity3d parse-platform

我使用Unity Parse SDK进行登录系统。如果登录信息正确,一切正常,如果不正确,那么它会导致异常,导致与我的Prime31 Etcetera Alert弹出窗口冲突。该异常似乎不会导致任何其他问题,否则应用运行正常。

例外:

System.AggregateException: Exception of type 'System.AggregateException' was thrown.

-----------------

Parse.ParseException: 404: not found

  at Parse.ParseClient+<>c__DisplayClass8.<RequestAsync>b__7 (System.Threading.Tasks.Task`1 t) [0x00000] in <filename unknown>:0 

  at Parse.Internal.InternalExtensions+<>c__DisplayClass1`2[System.Tuple`2[System.Net.HttpStatusCode,System.String],System.Tuple`2[System.Net.HttpStatusCode,System.Collections.Generic.IDictionary`2[System.String,System.Object]]].<OnSuccess>b__0 (System.Threading.Tasks.Task t) [0x00000] in <filename unknown>:0 

  at Parse.Internal.InternalExtensions+<>c__DisplayClass7`1[System.Tuple`2[System.Net.HttpStatusCode,System.Collections.Generic.IDictionary`2[System.String,System.Object]]].<OnSuccess>b__6 (System.Threading.Tasks.Task t) [0x00000] in <filename unknown>:0 

  at System.Threading.Tasks.Task+<>c__DisplayClass3`1+<>c__DisplayClass5[System.Threading.Tasks.Task`1[System.Tuple`2[System.Net.HttpStatusCode,System.Collections.Generic.IDictionary`2[System.String,System.Object]]]].<ContinueWith>b__2 () [0x00000] in <filename unknown>:0 

我尝试使用

捕获异常
catch( System.AggregateException e )

catch( System.Exception e )

但似乎都没有抓住它。

我有一个临时的工作,通过将其激活延迟一帧来使用Etcetera。然而,这不是一个完美的解决方案,一帧偏移可能仍然失败。

如何正确捕获此异常或以其他方式处理/避免它?

谢谢

1 个答案:

答案 0 :(得分:0)

不要试图捕获异常,而是检查任务是否出现故障:

Task t = ParseUser.LogInAsync(username, password);
while (!t.IsCompleted)
    yield return null;

if (t.IsCanceled || t.IsFaulted)
{
   // the exception can be found in t.Exception
}
else
{
    // login successful
}

至于获取有关当前404例外的更多信息,遗憾的是你不幸。 Parse在Unity中不再提供任何信息,显然是由于Unity的HTTP堆栈有限。更多信息:https://www.parse.com/questions/unity-sdk-handling-errors