我正在导航windows phone 8.1应用程序。我使用try catch块进行错误处理。只要我发送和无效的输入到服务器,如“dfkdsf”,它会引发一个运行时异常错误,声明无效参数,但catch块不处理它。我哪里错了?无效的参数异常
public async void GetSearchAPIData()
{
try
{
JArray arr = JArray.Parse(await responce.Content.ReadAsStringAsync());
foreach (JObject obj in arr.Children<JObject>()) //exception thrown here!
{
noOfResult++;
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.NullValueHandling = NullValueHandling.Ignore;
settings.MissingMemberHandling = MissingMemberHandling.Ignore;
var rcvdData = JsonConvert.DeserializeObject<LocationData>(obj.ToString(), settings);
//adding recieved data into a list..
RcvdSearchDataList.Add(rcvdData);
}
//changing current status on status bar..
statusBar.ProgressIndicator.Text = "Found " + noOfResult + " results for " + "\"" + UserRequestedLocation + "\"";
statusBar.ProgressIndicator.ProgressValue = 0;
if (RcvdSearchDataList.Count == 0)
{
statusBar.ProgressIndicator.Text = "We're Sorry! No matches found...";
statusBar.ProgressIndicator.ProgressValue = 0;
}
else
{
ResultListView = new ListView() { Margin = new Thickness(20), VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Stretch };
ResultDataGrid.Children.Add(ResultListView);
for (int i = 0; i < RcvdSearchDataList.Count; i++)
{
UpdateSearchTextData(i);
}
}
UpdateSearchMapData(RcvdSearchDataList);
}
catch(Exception e)
{
string errorMessage = string.Format(
"An error occurred while looking for the requested location.\r\n\r\n{0:x}\r\n\r\n{1}", "HRESULT: " + e.HResult, "Message: " + e.Message);
ErrorDialog.Content = errorMessage;
await ErrorDialog.ShowAsync();
}
}
的JArray ARR具有从我不能处理
做这一行responce.Content.ReadAsStringAsync()产生一个新的线程?并在该线程trown异常?....你可以发布堆栈跟踪? – Viru
显示你的model.or或检查你的db列,可能参数名称不匹配。我相信 –
@PankajGupta模型是完美的。一切工作正常,如果这是一个理想的情况下,像某人搜索德里或如果他拼错delhi德尔福或什么的,但我只是让我的应用程序处理例外,如果用户试图玩耍。 –