java的for循环中遇到异常抛出后继续循环执行

@Test
public void loopTryCatchTest() throws Exception {

Map<String, Object> a = new HashMap();
a.put("a", "1");
a.put("b", null);
a.put("c", "3");


for (Map.Entry<String, Object> moEntry : a.entrySet()) {
try{
boolean flag = moEntry.getValue().equals("1");
System.out.println(moEntry.getKey() + "," + moEntry.getValue() + "," + flag);

} catch(Exception e){
System.out.println("异常跳出" + e);
      //continue;--- 不需要写continue,因为写不写,都会继续循环,不会异常后直接退出的。
}
}

}


执行结果:

a,1,true
异常跳出java.lang.NullPointerException
c,3,false

 

如果try包在for循环外面,则无法达到预期效果,遇到异常抛出,被catch住后,循环无法继续执行。

@Test
public void loopTryCatchTest() throws Exception {

Map<String, Object> a = new HashMap();
a.put("a", "1");
a.put("b", null);
a.put("c", "3");

try {
for (Map.Entry<String, Object> moEntry : a.entrySet()) {

boolean flag = moEntry.getValue().equals("1");
System.out.println(moEntry.getKey() + "," + moEntry.getValue() + "," + flag);


}
}catch (Exception e) {
  System.out.println("异常跳出" + e);
  }

}
posted @ 2020-03-09 10:49  仔儿仔  阅读(17564)  评论(0编辑  收藏  举报