首頁 > Java > java教程 > 主體

嵌套的 try 區塊

Susan Sarandon
發布: 2024-10-19 14:09:31
原創
883 人瀏覽過

Blocos try aninhados

巢狀 try 區塊:

一個 try 區塊可以放置在另一個 try 區塊內。
如果內部 try 區塊沒有捕獲異常,它將傳播到外部 try 區塊。

異常傳播:
當內部區塊發生異常且未被內部區塊處理時,可以被外部區塊捕獲,從而允許程式以受控的方式繼續或終止。

巢狀 try 的範例程式碼:
以下範例顯示內部 try 區塊處理除零錯誤,而外部 try 區塊處理數組邊界之外的存取異常。

程式碼範例:

// Usa um bloco try aninhado.
class NestTrys {
    public static void main(String args[]) {
        // O array numer é mais longo que denom.
        int numer[] = { 4, 8, 16, 32, 64, 128, 256, 512 };
        int denom[] = { 2, 0, 4, 4, 0, 8 };

        try { // Bloco try externo
            for (int i = 0; i < numer.length; i++) {
                try { // Bloco try aninhado
                    // Tenta realizar a divisão
                    System.out.println(numer[i] + " / " + denom[i] + " is " + numer[i] / denom[i]);
                } catch (ArithmeticException exc) {
                    // Captura exceção de divisão por zero
                    System.out.println("Can't divide by Zero!");
                }
            }
        } catch (ArrayIndexOutOfBoundsException exc) {
            // Captura exceção de acesso fora dos limites do array
            System.out.println("No matching element found.");
            System.out.println("Fatal error - program terminated.");
        }
    }
}

登入後複製

程式輸出:
當發生被零除時,異常會被內部 try 區塊捕獲,程式繼續執行。
當索引錯誤發生在陣列邊界之外時,外部 try 區塊會擷取異常並終止程式。 ~

範例輸出:

4 / 2 is 2
Can't divide by Zero!
16 / 4 is 4
32 / 4 is 8
Can't divide by Zero!
128 / 8 is 16
No matching element found.
Fatal error – program terminated.

登入後複製

實際使用:

  • 巢狀的 try 區塊允許單獨處理不同類型的錯誤:
  • 較小的錯誤(例如被零除)可以在本地處理,從而允許程式繼續。
  • 更嚴重的錯誤(例如超出數組範圍的存取)可以被外部區塊捕獲,從而導致更激烈的操作,例如程式終止。

結論:

  • 當不同類別的錯誤需要以不同的方式處理時,使用巢狀的 try 區塊非常有用。
  • 這可以更靈活地控製程式的執行流程,讓您在內部處理輕度異常,並將嚴重異常留給外部區塊。

以上是嵌套的 try 區塊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板