巢狀 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 區塊的詳細內容。更多資訊請關注PHP中文網其他相關文章!