我正在编写一个忽略例外的循环,但效果很好。
for (; flag; ) {
try {
//do something ignore exception.
Runnable r = queue.pollFirst();
r.run();
} catch (Exception ignored) {
// ignored.
}
}
但我的问题是:如果我没有捕获RuntimeException 并强制继续循环最终块,会发生什么异常和返回值?
示例:
for (int i = 0; i < 10; i++) {
try {
System.out.println(i);
throw new RuntimeException();
} finally {
//what will happen to the exception if continue loop?
continue;
}
}
答案 0 :(得分:2)
它们将是ignored
,因为finally
块具有final
字。
答案 1 :(得分:1)
运行时异常将被忽略,因为没有catch块可以访问/使用(例如,用于记录目的)java.lang.RuntimeException的抛出对象。 finally块没有对try块抛出的Exception对象的任何访问权限。最好让catch块获取更多信息。
答案 2 :(得分:0)
不确定为什么要捕获RuntimeException,因为当你尝试捕获它时,为时已晚,因此你的继续将永远不会命中。