我有一个返回列表的方法,但是当我运行代码时,会出现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做些什么吗?
答案 0 :(得分:6)
您将从try
块以及catch
返回,因此永远不会到达最后一个return语句。
您的代码有多个返回路径。如果符合您的条件,则会在if
部分else
阻止try
部分,从第一个try
语句返回。在if
,您将根据else
以及try
返回,因此如果没有异常发生,您可以保证从catch
块返回,如果您遇到异常, return
声明,你也会从那里回来。因此,您的代码不可能继续下去。因此,最后{{1}}语句无法访问。
答案 1 :(得分:1)
只需按照您的代码操作即可。最后一个return
语句将永远不会运行,因为之前的每个其他分支都会导致另一个return
语句。