【发布时间】:2016-12-25 05:07:38
【问题描述】:
假设如下:
- 我有一个会返回水果名称的 rest API,而且只有 5 个水果。
- 要获得水果名称,我必须申请一个 ID。
考虑以下代码:
public class Fruit {
public int FruitID { get; set; }
public string FruitName { get; set; }
public Fruit(string json){
JObject o = JObject.Parse(json);
FruitID = Int32.Parse((string) o["id"]);
FruitName = (string) o["name");
}
}
public static Fruit getFruit(int id){
Task<Fruit> task = "http://fruit.com/get_fruit"
.SetQueryParams(new { fruit_id = id })
.GetStringAsync();
return new Fruit(task.Result);
}
(如果此时有任何问题,请纠正我,我是 C# 任务的新手)
假设当该任务返回时,如果它收到一个有效的 ID,则 json 可能如下所示...
{
"status":1,
"id": 3,
"name": "apple"
}
或者,如果它收到无效的 ID。
{
"status":0
}
如果用户应该输入要搜索的 ID,那么他们有可能输入一个不存在的 ID,因为只有 5 个(0 到 4)。根据我上面输入的代码,如果返回 "status":0,我可以看到应用程序崩溃,因为它没有类构造函数正在寻找的两个字段。
我的问题是:处理可能的无效输入(例如用户输入的 ID 为 20)的最佳方法是什么?
【问题讨论】: