我有一个方法,假设要获得一个JSON对象,其中包含来自传奇联盟的所有冠军ID,我希望它根据"数字"返回冠军的名字。从程序中的另一个循环传递给该方法。
public String getChampionName(int number) //where it is saying its not returning a string
{
try
{
String JSonChampionName = readURL("myURLwithAPIkey");
JSONObject object = JSONObject.fromObject(JSonChampionName);
JSONObject championData = (JSONObject)(object.get("data"));
JSONObject champName = (JSONObject)(championData.get(number));
if(object != null && championData != null && champName != null)
{
String cName = champName.get("name").toString();
return cName;
}
else
return "";
}catch(Exception v){}
}
任何想法我只是不确定为什么告诉我方法没有返回字符串。
答案 0 :(得分:2)
如果有Exception
被抓住怎么办?在这种情况下,您的方法没有return
语句。
要么抓住Exception
,要么在return
被抓住的情况下提供Exception
声明。
答案 1 :(得分:2)
编译器说你需要在程序可能采用的每个可能路径上返回一个字符串。如果发生异常,你会抓住它,但是你的catch块什么也不会做;然后程序将落到方法的末尾而不返回任何内容。
您需要修复您的方法,以便在捕获异常时返回一些内容,或者抛出其他异常。
答案 2 :(得分:1)
您需要返回所有场景中预期的类型!!这就是编译器所期望的。
现在,使用您实现的代码,问题是如果发生异常,此方法不会返回任何内容......
这就是为什么编译器抱怨,即使你有一个return语句..