java中无法返回的语句

时间:2013-11-21 17:04:59

标签: java android list

我有一个返回列表的方法,但是当我运行代码时,会出现Unreachable语句 此方法来自aidl文件,并生成带有返回的地图。

代码如下:

List<String> list = new ArrayList<String>();

Public List<String> setMethod(Map map) {
    ContentValues cv = null;
    Iterator i = map.keySet().iterator();
    Iterator j = map.values().iterator();

    if(map.isEmpty() || map == null) {
        return null;
    } else {
        try {
            while(i.hasNext()) {
                String str = (String) i.next();
                Long l = (Long) j.next();
                list.add(str);
                cv.put(Storage.STR, str);
                if(Provider.insert(Storage.Table, cv) < 0) {
                   return null;
                }
            }
            if(list.isEmpty() || list == null) {
                return null;
            } else {
                return mPathList;
            }
        } catch (Exception e) {
            return null;
        }
   return list;
}

任何人都可以给我一个亮点,我可以为dolve做些什么吗?

2 个答案:

答案 0 :(得分:6)

您将从try块以及catch返回,因此永远不会到达最后一个return语句。

您的代码有多个返回路径。如果符合您的条件,则会在if部分else阻止try部分,从第一个try语句返回。在if,您将根据else以及try返回,因此如果没有异常发生,您可以保证从catch块返回,如果您遇到异常, return声明,你也会从那里回来。因此,您的代码不可能继续下去。因此,最后{{1}}语句无法访问。

答案 1 :(得分:1)

只需按照您的代码操作即可。最后一个return语句将永远不会运行,因为之前的每个其他分支都会导致另一个return语句。