簡體   English   中英

嘗試最后阻止繼續循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM