繁体   English   中英

Java中无法到达的语句返回

[英]Unreachable statement return in java

我有一个返回列表的方法,但是当我运行代码时,出现Unreachable语句,该方法来自一个辅助文件并生成带有返回的映射。

下面的代码:

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;
}

谁能给我一个光明,我能为杜夫做些什么呢?

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

您的代码具有多个返回路径。 如果满足条件,则从第一个if语句返回, else您将try阻塞。 try您基于if以及else来返回,因此,如果没有异常发生,则可以保证从try块返回,如果发生异常,则具有catch语句,并且也从那里返回。 因此,您的代码将不可能继续下去。 因此,最后一个return语句不可访问。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM