当我们调用ParseCloud.CallFunctionAsync或ParseObject.GetQuery(...)时,FindAsync()函数和Internet连接在调用期间失败,该函数从不给出任何错误或超时或抛出异常。它只是无限期地坐在那里,它永远不会继续进入回调函数。以下是一个例子。我们需要一种方法来捕获该场景,以便我们可以向用户显示正确的消息。
是否有人就解决错误的最佳方法提出建议,以及如果在通话期间连接失败,如何捕获错误。
谢谢
try { var query = ParseObject.GetQuery(...); query.FindAsync().ContinueWith(t => { try { if (t.IsFaulted || t.IsCanceled) { Debug.Log("Error Exception: " + t.Exception); foreach(var e in t.Exception.InnerExceptions) { ParseException parseException = (ParseException) e; Debug.Log("Error message: " + parseException.Message); Debug.Log("Error code: " + parseException.Code); } else { //handle normal situation .... } } catch(Exception e) { Debug.Log(e.ToString()); } }); } catch(Exception e2) { Debug.Log(e2.ToString()); }
答案 0 :(得分:0)
在解析中,你可以处理很多事情的错误。
我认为如果没有互联网连接就停止查询你可以使用kPFErrorConnectionFailed
实施例
var query = PFQuery()
query.findObjectsInBackgroundWithBlock{
(success:Bool!, error:NSError!)-> Void in
if (error == nil) {
//continue query
}
else{
// 100 is the kPFErrorConnectionFailed which is for your scenario
if(error.code == 100) {
//handle error
}
}
}
需要注意的是,在较新的解析框架中,它们现在由代码编号而非名称处理,您需要搜索错误代码以处理特定方案。
以下链接包含解析https://parse.com/docs/osx/api/Constants/PFErrorCode.html
中的所有错误代码