该代码块的结果是什么
private static void m20() {
final List<String> list = Arrays.asList("1", "2", "3");
for (String s : list) {
Map<String, String> params = null;
try {
// 模拟调用微服务,并返回结果
params = getStringStringMap(s, params);
if (params == null) {
continue;
}
} catch (Exception e) {
System.err.println("异常");
}
System.out.println(params.get("1"));
}
}
private static Map<String, String> getStringStringMap(String s, Map<String, String> params) {
if ("1".equals(s)) {
params.get("");
} else {
params = new HashMap<>(1);
params.put(s, s);
}
return params;
}
结果
结论
1.当异常发生时该段代码块跳过判断中的continue;
2.不要把continue放在拦截异常的外部;
3.catch的代码块尽可能小;
4.禁止循环调用微服务,切记切记;