[英]try-finally block continue for loop
我正在編寫一個忽略該異常的循環,它運行良好。
for (; flag; ) {
try {
//do something ignore exception.
Runnable r = queue.pollFirst();
r.run();
} catch (Exception ignored) {
// ignored.
}
}
但是我的問題是:如果我沒有捕獲RuntimeException並在finally塊中強制繼續循環,那么異常和返回的值將如何處理?
例:
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;
}
}
由於finally
塊具有final
詞,因此將ignored
它們。
Runtime Exception將被忽略,因為沒有java.lang.RuntimeException引發的對象可以訪問/使用(例如,出於記錄目的)catch塊。 finally塊無權訪問try塊拋出的Exception對象。 最好使用catch塊來獲取更多信息。
不知道為什么要捕獲RuntimeException,因為到您嘗試捕獲它時,為時已晚,因此您的continue將永遠無法實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.