我的方法一直说我需要返回一个字符串,但我的方法有一个返回字符串的return语句

时间:2014-04-24 23:48:37

标签: java json parsing

我有一个方法,假设要获得一个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){}
}

任何想法我只是不确定为什么告诉我方法没有返回字符串。

3 个答案:

答案 0 :(得分:2)

如果有Exception被抓住怎么办?在这种情况下,您的方法没有return语句。

要么抓住Exception,要么在return被抓住的情况下提供Exception声明。

答案 1 :(得分:2)

编译器说你需要在程序可能采用的每个可能路径上返回一个字符串。如果发生异常,你会抓住它,但是你的catch块什么也不会做;然后程序将落到方法的末尾而不返回任何内容。

您需要修复您的方法,以便在捕获异常时返回一些内容,或者抛出其他异常。

答案 2 :(得分:1)

您需要返回所有场景中预期的类型!!这就是编译器所期望的。

现在,使用您实现的代码,问题是如果发生异常,此方法不会返回任何内容......

这就是为什么编译器抱怨,即使你有一个return语句..